Ответ
HashSet в Java использует хэш-таблицу для хранения элементов. Поиск элемента в HashSet выполняется за O(1) в среднем случае, так как вычисляется хэш-код элемента, и по нему определяется позиция в таблице.
Нюансы:
- Если хэш-функция плохая (много коллизий), время поиска ухудшается до O(n).
- При большом количестве элементов может потребоваться рехеширование, что временно замедляет операции.
Пример:
HashSet<String> set = new HashSet<>();
set.add("Android");
set.add("Kotlin");
// Поиск за O(1)
boolean contains = set.contains("Kotlin"); // true
Вывод: В идеальных условиях (хорошая хэш-функция, мало коллизий) поиск в HashSet очень быстрый.