Junior — Middle
Ar egzistuoja įgyvendinta duomenų struktūra, kuri sujungia žymės lentelės ir elementų tvarkos savybes?
sobes.tech AI
Atsakymas iš AI
Taip, tokia duomenų struktūra egzistuoja. Java ir Android ji yra LinkedHashSet klasė, kuri jungia hash lentelės savybes ir išlaiko elementų įterpimo tvarką.
LinkedHashSet saugo elementus kaip unikalius (kaip HashSet) ir tuo pačiu išlaiko jų pridėjimo tvarką, leidžiant iteruoti per elementus ta pačia tvarka.
Pavyzdys naudojant LinkedHashSet:
LinkedHashSet<String> linkedSet = new LinkedHashSet<>();
linkedSet.add("one");
linkedSet.add("two");
linkedSet.add("three");
for (String s : linkedSet) {
System.out.println(s); // Išves: one, two, three
}
Jei reikalinga natūralių tvarka, galima naudoti TreeSet, bet jis nėra paremtas hash lentele.