Junior — Middle
76
Что необходимо сделать для того, чтобы элемент мог быть автоматически отсортирован и добавлен в TreeSet?
Ответ от нейросети
sobes.tech AI
Чтобы элемент мог быть автоматически отсортирован и добавлен в TreeSet, необходимо обеспечить возможность сравнения этих элементов между собой. Для этого:
- Класс элемента должен реализовывать интерфейс
Comparable<T>и переопределять методcompareTo(T o), который определяет порядок сортировки.
class MyElement implements Comparable<MyElement> {
private int value;
public MyElement(int value) {
this.value = value;
}
@Override
public int compareTo(MyElement o) {
return Integer.compare(this.value, o.value);
}
}
TreeSet<MyElement> set = new TreeSet<>();
set.add(new MyElement(5));
set.add(new MyElement(3));
- Либо при создании
TreeSetпередать объектComparator<T>, который задаст порядок сортировки вне класса элемента.
Comparator<MyElement> comparator = (e1, e2) -> Integer.compare(e1.getValue(), e2.getValue());
TreeSet<MyElement> set = new TreeSet<>(comparator);
Без реализации Comparable или предоставления Comparator TreeSet не сможет определить порядок элементов и выбросит исключение при добавлении.