Sobes.tech
Junior — Middle

Czy istnieje zaimplementowana struktura danych, która łączy właściwości tablicy haszującej i uporządkowania elementów?

sobes.tech AI

Odpowiedź od AI

Tak, istnieje taka struktura danych. W Java i Android jest to klasa LinkedHashSet, która łączy właściwości tablicy haszującej i zachowuje kolejność dodawania elementów.

LinkedHashSet przechowuje elementy unikalne (jak HashSet) i jednocześnie zachowuje kolejność ich dodania, co pozwala na iterację po elementach w tej samej kolejności.

Przykład użycia LinkedHashSet:

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

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

Jeśli potrzebne jest sortowanie według naturalnego porządku, można użyć TreeSet, ale nie opiera się on na tablicy haszującej.