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

Какие свойства должен иметь объект в TreeSet для корректной работы

Объекты в `TreeSet` должны быть либо `Comparable`, либо необходимо передавать `Comparator` в конструктор `TreeSet`. Если ни то, ни другое не указано, при добавлении элемента выбросится `ClassCastException`. **Ключевые требования:** 1. **Согласованность с `equals`**: если `compareTo` или `compare` возвращает 0, `equals` должен вернуть `true` (иначе нарушается контракт `Set`). 2. **Симметричность и транзитивность**: для `compareTo`/`compare` должны выполняться стандартные правила сравнения. **Пример с `Comparable`:** ```java class Person implements Comparable { String name; @Override public int compareTo(Person other) { return this.name.compareTo(other.name); } // equals и hashCode должны быть согласованы } ``` **Пример с `Comparator`:** ```java TreeSet set = new TreeSet<>( Comparator.comparingInt(p -> p.name.length()) ); ```
Sophi
Софи собрала все вопросы. Тренируйся и получай
офферы быстрее!
Попробовать бесплатноArrow

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

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

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