❓ Чем отличаются HashSet, LinkedHashSet и TreeSet?
— HashSet поверх HashMap, без гарантий порядка, операции в среднем O(1). Требует корректных hashCode/equals.
— LinkedHashSet сохраняет порядок вставки за счёт двусвязного списка поверх хеш-таблицы, операции O(1), но чуть больше памяти.
— TreeSet основан на красно-чёрном дереве, элементы хранятся отсортированными (по Comparable или Comparator), операции O(log n). Поддерживает навигацию: first, ceiling, headSet, диапазоны.
Выбор: нужен порядок добавления — LinkedHashSet, нужна сортировка или диапазонные запросы — TreeSet, в остальных случаях — HashSet.
🐸 Библиотека собеса по Java
#core
Post #1403
971
- 👍 6
- 🔥 2