Sobes.tech
Junior — Middle

Există o structură de date implementată care combină proprietățile unui tabel hash și ale ordonării elementelor?

sobes.tech AI

Răspuns de la AI

Da, o astfel de structură de date există. În Java și Android, aceasta este clasa LinkedHashSet, care combină proprietățile unui tabel hash și păstrează ordinea de inserare a elementelor.

LinkedHashSet stochează elementele în mod unic (ca HashSet) și păstrează ordinea în care au fost adăugate, permițând iterarea peste elemente în aceeași ordine.

Exemplu de utilizare a LinkedHashSet:

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

for (String s : linkedSet) {
    System.out.println(s); // Va afișa: one, two, three
}

Dacă este nevoie de sortare după ordinea naturală, se poate folosi TreeSet, dar acesta nu se bazează pe o tabelă hash.