Junior — Middle
Môžete vysvetliť vnútornú štruktúru a fungovanie dátovej štruktúry TreeSet v Jave?
sobes.tech AI
Odpoveď od AI
TreeSet v Jave je implementácia rozhrania SortedSet, ktoré uchováva prvky v zoradenom poradí bez duplikátov. Interné je TreeSet založené na dátovej štruktúre červeného-čierneho stromu (Red-Black Tree), čo zabezpečuje vyvážený strom s logaritmickou zložitosťou operácií pridávania, odstraňovania a vyhľadávania.
Hlavné body:
- Pri pridávaní prvku TreeSet používa metódu compareTo (ak sú prvky Comparable) alebo Comparator na určenie pozície.
- Červený-čierny strom zabezpečuje, že výška stromu zostáva približne logaritmická vzhľadom na počet prvkov, čím zabezpečuje efektívne vyhľadávanie.
- TreeSet nepovoľuje null prvky, pretože porovnanie s null spôsobí NullPointerException.
Príklad použitia:
TreeSet<String> set = new TreeSet<>();
set.add("apple");
set.add("banana");
set.add("apple"); // nebude pridané, lebo je duplikát
for (String fruit : set) {
System.out.println(fruit);
}
// Výstup:
apple
banana
Takže, TreeSet je užitočná štruktúra na ukladanie unikátnych prvkov v zoradenom tvare s efektívnym prístupom a modifikáciou.