Sobes.tech
Junior — Middle

Има ли реализирана структура от данни, която съчетава свойствата на хеш таблица и подредбата на елементите?

sobes.tech AI

Отговор от AI

Да, така структура от данни съществува. В Java и Android това е класът LinkedHashSet, който съчетава свойствата на хеш таблица и поддържа реда на добавяне на елементите.

LinkedHashSet съхранява елементите като уникални (като HashSet) и същевременно запазва реда им на добавяне, което позволява итерация по елементите в същия ред.

Пример за използване на LinkedHashSet:

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

for (String s : linkedSet) {
    System.out.println(s); // Ще изведе: one, two, three
}

Ако е необходима сортирана по естествен ред, може да се използва TreeSet, но той не е базиран на хеш таблица.