Встречается на собеседованиях • сегодня
Как хранится значение, которое из HashSet попадает в HashMap
В `HashSet` значения хранятся как ключи в `HashMap`, где значениями служат фиктивные объекты (обычно `PRESENT` — константа `Object`). При добавлении элемента в `HashSet` вызывается `map.put(element, PRESENT)`. Если элемент уже есть, `put` возвращает старое значение, и добавление не происходит.
Пример:
```java
HashSet set = new HashSet<>();
set.add("Java"); // Внутри: map.put("Java", PRESENT)
```
Нюансы:
- `HashMap` требует уникальности ключей, что обеспечивает уникальность элементов в `HashSet`.
- `PRESENT` — это просто заглушка (`private static final Object PRESENT = new Object()`), не влияющая на логику.
- При коллизиях хешей `HashMap` использует цепочки или дерево (в Java 8+), но это прозрачно для `HashSet`.
Таким образом, `HashSet` — это обёртка над `HashMap` с фокусом на ключи.

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