Junior — Middle
110
Koja je razlika u ponašanju metode contains() pri korišćenju lista i skupova?
Одговор од АИ
sobes.tech АИ
Метод contains() в Java используется для проверки, содержит ли коллекция определённый элемент. Поведение этого метода отличается между списками (List) и множествами (Set):
-
List.contains() проверяет наличие элемента, перебирая элементы в порядке их добавления. Если элемент встречается, возвращает
true. Порядок важен, и поиск может быть медленнее, так как список может содержать дубликаты. -
Set.contains() обычно реализован на основе хеш-таблиц (например,
HashSet), что обеспечивает более быструю проверку наличия элемента (приблизительно за O(1)). Множество не содержит дубликатов, поэтому проверка однозначна.
Итог:
- В списках поиск
contains()— линейный по времени. - В множествах — быстрый, благодаря хешированию.
Пример:
List<String> list = Arrays.asList("apple", "banana", "apple");
Set<String> set = new HashSet<>(list);
boolean inList = list.contains("apple"); // true
boolean inSet = set.contains("apple"); // true
Основное отличие — производительность и отсутствие дубликатов в множестве.