Junior — Middle
Kādi objektu tipi ir atļauti ievietošanai TreeSet?
sobes.tech AI
Atbilde no AI
TreeSet var pievienot tikai objektus, kas vai īsteno Comparable interfeisu, vai arī tiem ir definēts salīdzināšanas mehānisms (Comparator) veidojot TreeSet. Tas ir nepieciešams, lai elementi varētu tikt sakārtoti, jo TreeSet glabā elementus sakārtotā formā.
Ja objekti neīsteno Comparable un nav sniegts Comparator, mēģinot pievienot elementu, tiks iemests izņēmums ClassCastException.
Piemērs:
TreeSet<String> set = new TreeSet<>(); // String īsteno `Comparable`
set.add("ābols");
set.add("banāns");
// Ar pielāgotu klasi:
class Person implements Comparable<Person> {
String vārds;
public Person(String vārds) { this.vārds = vārds; }
@Override
public int compareTo(Person cits) {
return this.vārds.compareTo(cits.vārds);
}
}
TreeSet<Person> cilvēki = new TreeSet<>();
cilvēki.add(new Person("Alise"));
cilvēki.add(new Person("Bobs"));
Vai ar salīdzināšanas mehānismu:
TreeSet<Person> cilvēki = new TreeSet<>(Comparator.comparing(p -> p.vārds));
cilvēki.add(new Person("Alise"));
cilvēki.add(new Person("Bobs"));