Sobes.tech
Junior — Middle

Esiste una struttura dati implementata che combina le proprietà di una tabella hash e l'ordinamento degli elementi?

sobes.tech AI

Risposta dell'AI

Sì, esiste una tale struttura dati. In Java e Android, questa è la classe LinkedHashSet, che combina le proprietà di una tabella hash e mantiene l'ordine di inserimento degli elementi.

LinkedHashSet memorizza gli elementi in modo univoco (come HashSet) e mantiene l'ordine in cui sono stati aggiunti, consentendo di iterare sugli elementi nello stesso ordine.

Esempio di utilizzo di LinkedHashSet:

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

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

Se si necessita di ordinamento naturale, si può usare TreeSet, ma non è basato su una tabella hash.