Встречается на собеседованиях • сегодня
Какие свойства должен иметь объект в 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())
);
```

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