Встречается на собеседованиях • сегодня

Какие знаешь реализации 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-типов, очень эффективен по памяти и скорости.
Sophi
Софи собрала все вопросы. Тренируйся и получай
офферы быстрее!
Попробовать бесплатноArrow

Следующий вопрос

Это единственный вопрос по вашему фильтру

как отвечать на вопрос
пример собеседования
фреймворки на собеседовании
типичные вопросы junior
интервью вопросы и ответы