Sobes.tech
Middle
48

Jakie kolekcje znasz? Opowiedz o głównych implementacjach List. Czym różni się ArrayList od LinkedList?

Firmy, w których zadano pytania
Лоция

Odpowiedź od AI

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"); // быстрая вставка в начало