Встречается на собеседованиях • сегодня
Как устроен HashSet
HashSet в Java реализован на основе HashMap. Он хранит элементы как ключи в HashMap, где значениями являются фиктивные объекты (обычно `PRESENT` - статическая константа).
**Особенности:**
- Гарантирует уникальность элементов через `equals()` и `hashCode()`
- Не гарантирует порядок элементов
- Позволяет хранить `null` (только один)
- Операции `add()`, `remove()`, `contains()` работают за O(1) в среднем случае
Пример:
```java
Set set = new HashSet<>();
set.add("apple");
set.add("banana");
set.add("apple"); // Дубликат не добавится
System.out.println(set); // Может вывести [banana, apple]
```
Под капотом при добавлении элемента:
1. Вычисляется `hashCode()` объекта
2. Находится бакет в хэш-таблице
3. Если бакет пуст - элемент добавляется
4. Если нет - проверяется `equals()` с существующими элементами в бакете

Софи собрала все вопросы. Тренируйся и получай
офферы быстрее!
офферы быстрее!
Попробовать бесплатно
Следующий вопрос
Это единственный вопрос по вашему фильтру
как отвечать на вопрос
пример собеседования
фреймворки на собеседовании
типичные вопросы junior
интервью вопросы и ответы