Встречается на собеседованиях • сегодня
В чем разница между HashSet и TreeSet
`HashSet` и `TreeSet` – оба реализуют интерфейс `Set`, но имеют ключевые различия:
1. **Скорость и порядок**:
- `HashSet` использует хэш-таблицу, обеспечивая вставку/удаление за O(1) в среднем, но не гарантирует порядок элементов.
- `TreeSet` хранит элементы в отсортированном порядке (по `Comparable` или `Comparator`), но операции вставки/удаления занимают O(log n).
2. **Null-значения**:
- `HashSet` разрешает один `null`.
- `TreeSet` выбрасывает `NullPointerException` при добавлении `null`.
3. **Производительность**:
- `HashSet` быстрее для частых операций добавления/проверки.
- `TreeSet` полезен, когда нужен порядок или диапазонные запросы (`subSet()`, `headSet()`).
Пример:
```java
Set hashSet = new HashSet<>();
hashSet.add("apple");
hashSet.add(null); // OK
Set treeSet = new TreeSet<>();
treeSet.add("banana");
treeSet.add(null); // NullPointerException
```

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