Junior — Middle
67
Какими типами объектов допускается вставлять элементы в TreeSet?
Answer from AI
sobes.tech AI
В TreeSet можно вставлять только объекты, которые либо реализуют интерфейс Comparable, либо для которых при создании TreeSet задан компаратор (Comparator). Это необходимо, чтобы элементы можно было упорядочить, так как TreeSet хранит элементы в отсортированном виде.
Если объекты не реализуют Comparable и не передан Comparator, при попытке вставить элемент будет выброшено ClassCastException.
Пример:
TreeSet<String> set = new TreeSet<>(); // String реализует Comparable
set.add("apple");
set.add("banana");
// Для пользовательского класса:
class Person implements Comparable<Person> {
String name;
public Person(String name) { this.name = name; }
@Override
public int compareTo(Person other) {
return this.name.compareTo(other.name);
}
}
TreeSet<Person> people = new TreeSet<>();
people.add(new Person("Alice"));
people.add(new Person("Bob"));
Или с компаратором:
TreeSet<Person> people = new TreeSet<>(Comparator.comparing(p -> p.name));
people.add(new Person("Alice"));
people.add(new Person("Bob"));