Встречается на собеседованиях • сегодня
Какие знаешь реализации Set
В Java основные реализации интерфейса `Set`:
1. **HashSet** – базируется на `HashMap`, хранит элементы в хэш-таблице. Не гарантирует порядок элементов. Быстрый доступ O(1), но зависит от хэш-функции.
```java
Set hashSet = new HashSet<>();
hashSet.add("Java");
hashSet.add("Python");
```
2. **LinkedHashSet** – сохраняет порядок вставки, использует `LinkedHashMap` под капотом. Немного медленнее `HashSet` из-за поддержки порядка.
```java
Set linkedHashSet = new LinkedHashSet<>();
linkedHashSet.add("Java"); // Порядок сохраняется
```
3. **TreeSet** – основан на `TreeMap`, хранит элементы в отсортированном порядке (natural ordering или через `Comparator`). Операции O(log n).
```java
Set treeSet = new TreeSet<>();
treeSet.add("Python"); // Автоматическая сортировка
treeSet.add("Java");
```
4. **CopyOnWriteArraySet** – потокобезопасная реализация, использует `CopyOnWriteArrayList`. Медленный при записи, но быстрый для чтения.
5. **EnumSet** – оптимизирован для enum-типов, очень эффективен по памяти и скорости.

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