Назад к вопросам
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) в среднем