Sobes.tech
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.