Sobes.tech
Назад к вопросам
Junior — Middle
81

Можешь ли ты сравнить скорость поиска элемента в различных типах коллекций?

Компании, где спрашивали
Surf

Ответ от нейросети

sobes.tech AI

Скорость поиска элемента зависит от типа коллекции и её внутренней структуры:

  • ArrayList — поиск по индексу очень быстрый (O(1)), но поиск по значению — линейный (O(n)), так как нужно перебрать элементы.
  • LinkedList — поиск по индексу и по значению — O(n), так как нужно пройти по элементам последовательно.
  • HashSet / HashMap — поиск по ключу или элементу обычно очень быстрый — O(1) в среднем, благодаря хешированию.
  • TreeSet / TreeMap — поиск занимает O(log n), так как данные хранятся в сбалансированном дереве.

Пример:

List<String> list = new ArrayList<>();
list.add("apple");
list.add("banana");
boolean found = list.contains("banana"); // O(n)

Set<String> set = new HashSet<>();
set.add("apple");
set.add("banana");
boolean foundInSet = set.contains("banana"); // O(1) в среднем