Gymterview
junior

В чем отличия TreeSet и HashSet

HashSet хранит элементы в хэш-таблице (на основе HashMap), а TreeSet — в красно-черном дереве (на основе TreeMap). Это определяет их ключевые различия.

Характеристика HashSet TreeSet
Порядок элементов Не гарантирован Отсортированный
Сложность add/remove/contains O(1) среднее O(log N)
null-элементы Допускает (один) Не допускает (NPE при сравнении)
Требование к элементам hashCode() + equals() Comparable или Comparator
Внутренняя структура HashMap TreeMap (красно-черное дерево)
Дополнительные методы Нет first(), last(), headSet(), tailSet(), subSet()

TreeSet следует использовать, когда нужен отсортированный набор или операции с диапазонами (headSet, tailSet, subSet). В остальных случаях HashSet предпочтительнее благодаря O(1) операциям.

На собеседовании: сравните через таблицу. Ключевые отличия: порядок (нет vs отсортированный) и сложность (O(1) vs O(log N)).