Sobes.tech
Junior — Middle

Existuje implementovaná dátová štruktúra, ktorá kombinuje vlastnosti hash tabuľky a usporiadania prvkov?

sobes.tech AI

Odpoveď od AI

Áno, takáto dátová štruktúra existuje. V Jave a Androide je to trieda LinkedHashSet, ktorá kombinuje vlastnosti hashovej tabuľky a zachováva poradie vkladania prvkov.

LinkedHashSet ukladá prvky ako jedinečné (ako HashSet) a pritom zachováva poradie ich pridania, čo umožňuje iteráciu prvkov v rovnakom poradí.

Príklad použitia LinkedHashSet:

LinkedHashSet<String> linkedSet = new LinkedHashSet<>();
linkedSet.add("one");
linkedSet.add("two");
linkedSet.add("three");

for (String s : linkedSet) {
    System.out.println(s); // Vypíše: one, two, three
}

Ak je potrebné zoradenie podľa prirodzeného poradia, možno použiť TreeSet, ale ten nie je založený na hashovej tabuľke.