Чем отличается List
от ArrayList
. Погуглил, но толком ничего не нашел (как минимум, на русском языке). Насколько я понял, ArrayList
является реализацией List
, однако различий я особых не заметил. Так в чем же все-таки разница?
Так как ArrayList
реализует интерфейс List
, то у него должны быть все методы List
плюс (возможно) какие-то другие. Отсюда внешняя схожесть.
При этом в List
эти методы вообще никак не реализованы и невозможно создать объект командой new List()
.
Реализации одного и того же интерфейса могут иметь внешне одни и те же методы, но радикально отличаться их внутренней реализацией. Например, в основе ArrayList
- массив, который при необходимости заменяется большим (или меньшим) по размеру с переписыванием содержимого из старого в новый. В основе же LinkedList
(другой реализации интерфейса List
) лежит двунаправленный связанный список, а каждый элемент списка содержит в себе ссылку на следующий и предыдущий элементы.
То есть рекомендуется писать так как вы указали, вместо ArrayList<String> list = new ArrayList<>();
? А почему рекомендуется писать именно так? Есть ли в этом различие?
В ссылку типа List
вы можете присвоить объект любого наследующего его типа (и ArrayList
и LinkedList
). Потом можете вызывать из этой ссылки методы, которые есть в типе List
, не задумываясь, какой именно объект вы туда поместили.
Например, так удобно передавать параметры в методы или создавать массивы объектов List
, которые могут содержать объекты разных типов в разных элементах.
Как правило к List
"приводят" объект нужного класса, реализующего интерфейс List
.
К примеру, насколько я знаю, рекомендуется писать именно
List<String> list = new ArrayList<>();
List<String> list = new LinkedList<>();
и т.д.
Виртуальный выделенный сервер (VDS) становится отличным выбором
Подскажите пожалуйста как можно сделать что б в datetime-local всегда выдавался 24 часовой пояс либо как можно его заменить либо хотя бы изменить...
Доброго времени сутокК сожалению я только новенький в программировании и много не понимаю, но буду очень благодарен за помощь
Добрый день, столкнулся с такой проблемойДелаю калькулятор для сайта с последующим заказом