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.