Sobes.tech
Junior — Middle

Kas on olemas rakendatud andmestruktuur, mis ühendab hash-tabeli ja elementide järjekorra omadused?

sobes.tech AI

Vastus AI-lt

Jah, selline andmestruktuur eksisteerib. Java ja Android puhul on see LinkedHashSet klass, mis ühendab hash-tabeli omadused ja säilitab elementide sisestamise järjekorra.

LinkedHashSet hoiab elemente unikaalsena (nagu HashSet) ning säilitab nende lisamise järjekorra, mis võimaldab iteratsiooni samas järjekorras.

Näide LinkedHashSet kasutamisest:

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

for (String s : linkedSet) {
    System.out.println(s); // Väljund: one, two, three
}

Kui on vaja sorteerimist loomulikus järjekorras, saab kasutada TreeSet, kuid see ei põhine hash-tabelil.