Страницы

Поиск по вопросам

суббота, 6 октября 2018 г.

Чем отличается List от ArrayList?

Чем отличается List от ArrayList. Погуглил, но толком ничего не нашел (как минимум, на русском языке). Насколько я понял, ArrayList является реализацией List, однако различий я особых не заметил. Так в чем же все-таки разница?


Ответ

Так как ArrayList реализует интерфейс List, то у него должны быть все методы List плюс (возможно) какие-то другие. Отсюда внешняя схожесть. При этом в List эти методы вообще никак не реализованы и невозможно создать объект командой new List()
Реализации одного и того же интерфейса могут иметь внешне одни и те же методы, но радикально отличаться их внутренней реализацией. Например, в основе ArrayList - массив, который при необходимости заменяется большим (или меньшим) по размеру с переписыванием содержимого из старого в новый. В основе же LinkedList (другой реализации интерфейса List) лежит двунаправленный связанный список, а каждый элемент списка содержит в себе ссылку на следующий и предыдущий элементы.

Комментариев нет:

Отправить комментарий