Назад к вопросам
Middle
3
Какие коллекции знаешь? Расскажи про основные реализации List. Чем отличается ArrayList от LinkedList?
Компании, где спрашивали
Лоция
Ответ от нейросети
sobes.tech AI
В Java основные коллекции делятся на несколько интерфейсов: List, Set, Map и др.
List — упорядоченная коллекция, допускающая дубликаты. Основные реализации List:
- ArrayList — основан на массиве, обеспечивает быстрый доступ по индексу (O(1)), но операции вставки/удаления в середине списка медленнее (O(n)), так как требует сдвига элементов.
- LinkedList — реализован как двусвязный список, обеспечивает быструю вставку и удаление в любом месте (O(1) при наличии ссылки), но доступ по индексу медленнее (O(n)), так как нужно пройти по элементам.
Выбор между ArrayList и LinkedList зависит от сценария:
- Если часто нужен быстрый доступ по индексу и редко вставки/удаления — лучше ArrayList.
- Если часто вставляете/удаляете элементы в середине списка — LinkedList может быть эффективнее.
Пример:
List<String> arrayList = new ArrayList<>();
arrayList.add("a");
String element = arrayList.get(0); // быстрый доступ
List<String> linkedList = new LinkedList<>();
linkedList.add(0, "b"); // быстрая вставка в начало