Sobes.tech
Назад к вопросам
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"); // быстрая вставка в начало