Встречается на собеседованиях • сегодня
Какие знаешь имплементации Set
В Java основные реализации интерфейса `Set`:
1. **HashSet** – основан на хэш-таблице (использует `HashMap` внутри). Гарантирует O(1) для `add()`, `remove()`, `contains()`, но не сохраняет порядок элементов.
```java
Set set = new HashSet<>();
```
2. **LinkedHashSet** – сохраняет порядок вставки элементов, использует `LinkedHashMap` внутри. Немного медленнее `HashSet` из-за поддержки порядка.
3. **TreeSet** – реализован на основе `TreeMap` (красно-черное дерево). Элементы сортируются (натуральный порядок или `Comparator`). Операции `add()`, `remove()`, `contains()` – O(log n).
```java
Set sortedSet = new TreeSet<>();
```
4. **CopyOnWriteArraySet** – потокобезопасная реализация, использует `CopyOnWriteArrayList`. Подходит для редких модификаций и частого чтения.
5. **EnumSet** – оптимизирован для работы с enum, очень эффективен по памяти и скорости. Использует битовые маски.
```java
EnumSet days = EnumSet.allOf(DayOfWeek.class);
```

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