Junior — Middle
Létezik-e olyan megvalósított adatszerkezet, amely ötvözi a hash-tábla és az elemek rendezésének tulajdonságait?
sobes.tech MI
Válasz az MI-től
Igen, létezik ilyen adatstruktúra. Java-ban és Androidban ez a LinkedHashSet osztály, amely egyesíti a hash-tábla tulajdonságait, és megőrzi az elemek beszúrási sorrendjét.
A LinkedHashSet egyedileg tárolja az elemeket (mint a HashSet), és megőrzi a hozzáadásuk sorrendjét, így az elemek ugyanabban a sorrendben iterálhatók.
A LinkedHashSet használatának példája:
LinkedHashSet<String> linkedSet = new LinkedHashSet<>();
linkedSet.add("one");
linkedSet.add("two");
linkedSet.add("three");
for (String s : linkedSet) {
System.out.println(s); // Kiírja: one, two, three
}
Ha természetes sorrend szerint kell rendezni, akkor a TreeSet használható, de ez nem hash-táblán alapul.