Sobes.tech
Junior — Middle

Existuje implementovaná datová struktura, která kombinuje vlastnosti hašovací tabulky a pořadí prvků?

sobes.tech AI

Odpověď od AI

Ano, taková datová struktura existuje. V Javě a Androidu je to třída LinkedHashSet, která kombinuje vlastnosti hashové tabulky a zachovává pořadí vkládání prvků.

LinkedHashSet ukládá prvky jako unikátní (stejně jako HashSet) a zároveň zachovává pořadí jejich přidání, což umožňuje iteraci prvků ve stejném pořadí.

Příklad použití 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
}

Pokud je potřeba řadit podle přirozeného pořadí, lze použít TreeSet, ale ten není založen na hashové tabulce.