Differenza tra TreeSet e HashSet

Differenza chiave - TreeSet vs HashSet
 

La maggior parte dei linguaggi di programmazione supporta gli array. È una struttura dati che viene utilizzata per memorizzare più elementi dello stesso tipo di dati. Se esiste una matrice dichiarata per sei elementi, non può essere utilizzata per memorizzare dieci elementi. Pertanto, gli array non sono dinamici e non possono cambiare la dimensione dell'array una volta che è stato dichiarato. I linguaggi di programmazione come Java supportano le raccolte che vengono utilizzate per archiviare i dati in modo dinamico. Operazioni di supporto delle raccolte come l'aggiunta di elementi e l'eliminazione di elementi. C'è una serie di interfacce e classi nella gerarchia della collezione. L'interfaccia di base è l'interfaccia di raccolta. Set è un'interfaccia che estende l'interfaccia Collection. Non consente la duplicazione. TreeSet e HashSet sono due classi nella gerarchia Collection e entrambi implementano l'interfaccia Set. TreeSet è una classe che implementa l'interfaccia Set e viene utilizzata per memorizzare elementi unici in ordine crescente. HashSet è una classe che implementa l'interfaccia Set e viene utilizzata per memorizzare elementi unici utilizzando il meccanismo di hashing. Il differenza fondamentale tra TreeSet e HashSet è quello TreeSet memorizza gli elementi in ordine crescente mentre HashSet non memorizza gli elementi in ordine crescente. Sia TreeSet che HashSet memorizzano solo elementi unici.

CONTENUTO

1. Panoramica e differenza chiave
2. Che cos'è un TreeSet
3. Cos'è un HashSet
4. Somiglianze tra TreeSet e HashSet
5. Confronto fianco a fianco - TreeSet vs HashSet in forma tabulare
6. Sommario

Che cos'è un TreeSet?

La classe TreeSet implementa l'interfaccia NavigableSet. L'interfaccia NavigableSet estende le interfacce SortedSet, Set, Collection e Iterable in ordine gerarchico. TreeSet mantiene sempre l'ordine crescente. Se gli elementi sono stati inseriti nell'ordine B, A, C, verranno memorizzati come A, B, C. I metodi come add (), remove () possono essere utilizzati con l'oggetto TreeSet. Il metodo add può essere utilizzato per aggiungere un elemento. Il metodo remove viene utilizzato per rimuovere un elemento dalla raccolta. Questi sono alcuni metodi che possono essere utilizzati con TreeSet.

Figura 01: programma con TreeSet

Secondo il programma di cui sopra, viene creato un oggetto di tipo TreeSet. Gli elementi di dati stringa vengono aggiunti a quell'oggetto utilizzando il metodo add. L'ordine inserito dei dati è A, D, A, B, C, D. Usando l'iteratore, i valori memorizzati vengono stampati sullo schermo. L'output è A, B, C, D. Anche se ci sono due lettere A e due lettere D, l'output visualizza l'uno A e uno D ciascuno. Pertanto, TreeSet memorizza elementi unici. Non esiste un particolare ordine di inserimento ma quando si osserva l'output, si può vedere che TreeSet mantiene l'ordine crescente degli elementi.

Cos'è un HashSet?

La classe HashSet estende la classe AbstractSet che implementa Set Interface. L'interfaccia Set eredita le interfacce Collection e Iterable in ordine gerarchico. In HashSet, non vi è alcuna garanzia che gli elementi manterranno l'ordine crescente e l'ordine inserito. Se l'ordine inserito era A, B, C, i valori potrebbero essere memorizzati come C, A, B. L'ordine di memorizzazione può anche essere A, B, C ma non vi è alcuna garanzia che l'ordine inserito o l'ordine crescente sia mantenuto.

Figura 02: programma con HashSet

Secondo il programma di cui sopra, viene creato un oggetto di tipo HashSet. Gli elementi di dati stringa vengono aggiunti a quell'oggetto utilizzando il metodo add. L'ordine di inserimento dati è L, R, M, M, R, L. Usando l'iteratore, i valori memorizzati vengono stampati sullo schermo. L'output è R L M. Anche se ci sono due lettere L, R e M da ciascuna, viene visualizzata solo una lettera da ciascuna. Pertanto, HashSet memorizza elementi unici. Osservando l'uscita, si può vedere che non esiste un ordine crescente o che l'ordine inserito viene mantenuto.

Quali sono le somiglianze tra TreeSet e HashSet?

  • Sia TreeSet che HashSet sono classi che appartengono alla gerarchia della collezione.
  • Sia TreeSet che HashSet memorizzano solo elementi unici.
  • Sia TreeSet che HashSet possono essere utilizzati per archiviare e manipolare molti elementi.
  • Sia TreeSet che HashSet non mantengono l'ordine inserito.

Qual è la differenza tra TreeSet e HashSet?

TreeSet vs HashSet

TreeSet è una classe nella gerarchia di raccolta che viene utilizzata per memorizzare elementi univoci in ordine crescente. HashSet è una classe nella gerarchia di raccolta che viene utilizzata per memorizzare elementi unici utilizzando il meccanismo di hashing.
 Memorizzazione degli elementi
TreeSet memorizza gli elementi in ordine crescente. HashSet non memorizza gli elementi in ordine crescente.

Riepilogo - TreeSet vs HashSet

Nella programmazione, è necessario memorizzare gli elementi di dati in modo dinamico. I linguaggi di programmazione come Java supportano le raccolte per ottenere questo compito. C'è una serie di interfacce e classi nella gerarchia della collezione. TreeSet e HashSet sono due classi nella gerarchia Collection. Entrambi implementano l'interfaccia Set. TreeSet è una classe che implementa l'interfaccia Set e viene utilizzata per memorizzare elementi unici in ordine crescente. HashSet è una classe che implementa l'interfaccia Set e viene utilizzata per memorizzare elementi unici utilizzando il meccanismo di hashing. La differenza tra TreeSet e HashSet è che TreeSet memorizza gli elementi in ordine crescente mentre HashSet non memorizza gli elementi in ordine crescente. Questo articolo ha discusso la differenza tra TreeSet e HashSet.

Riferimento:

1. "TreeSet in Java - javatpoint". JavaPoint. Disponibile qui
2. "HashSet in Java - javatpoint." JavaPoint  Disponibile qui