Junior — Middle
Kas saaksite selgitada Java TreeSet andmestruktuuri sisemist struktuuri ja tööd?
sobes.tech AI
Vastus AI-lt
Java-s on TreeSet SortedSet-liidese rakendus, mis salvestab elemendid sorteeritud järjekorras ilma duplikaatideta. Siseas on TreeSet põhineb punase-musta puu (Red-Black Tree) andmestruktuuril, mis tagab tasakaalustatud puu logaritmilise keerukusega lisamise, eemaldamise ja otsingu operatsioonides.
Peamised punktid:
- Elementi lisamisel kasutab TreeSet meetodit compareTo (kui elemendid on Comparable) või Comparator, et määrata positsioon.
- Punane-must puu tagab, et puu kõrgus jääb ligikaudu logaritmiliseks vastavalt elementide arvule, pakkudes tõhusat otsingut.
- TreeSet ei luba null-elemente, kuna nulliga võrdlemine põhjustab NullPointerExceptioni.
Kasutusnäide:
TreeSet<String> set = new TreeSet<>();
set.add("apple");
set.add("banana");
set.add("apple"); // ei lisandu, kuna duplikaat
for (String fruit : set) {
System.out.println(fruit);
}
// Väljund:
apple
banana
Seega on TreeSet mugav struktuur unikaalsete elementide salvestamiseks sorteeritud kujul, pakkudes tõhusat juurdepääsu ja muutmist.