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 è presente un array dichiarato per sei elementi, non può essere utilizzato per memorizzare dieci elementi. Pertanto, gli array non sono dinamici e non possono modificare la dimensione dell'array una volta dichiarato. I linguaggi di programmazione come Java supportano le raccolte che vengono utilizzate per memorizzare i dati in modo dinamico. Le raccolte supportano operazioni come l'aggiunta di elementi e l'eliminazione di elementi. Esiste una serie di interfacce e classi nella gerarchia della raccolta. L'interfaccia di base è l'interfaccia Collection. Set è un'interfaccia che estende l'interfaccia Collection. Non consente la duplicazione. TreeSet e HashSet sono due classi nella gerarchia Collection ed entrambi implementano l'interfaccia Set. TreeSet è una classe che implementa l'interfaccia Set e viene utilizzata per memorizzare elementi univoci in ordine crescente. HashSet è una classe che implementa l'interfaccia Set e viene utilizzata per memorizzare elementi univoci utilizzando il meccanismo di hash. La differenza fondamentale tra TreeSet e HashSet è che TreeSet memorizza gli elementi in ordine crescente mentre HashSet non memorizza gli elementi in ordine crescente. Sia TreeSet che HashSet memorizzano solo elementi univoci.
CONTENUTI
1. Panoramica e differenza chiave
2. Che cos'è un TreeSet
3. Che cos'è un HashSet
4. Somiglianze tra TreeSet e HashSet
5. Confronto affiancato - TreeSet e HashSet in forma tabulare
6. Riepilogo
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 sopra, viene creato un oggetto di tipo TreeSet. Gli elementi di dati della stringa vengono aggiunti a quell'oggetto utilizzando il metodo add. L'ordine di inserimento dei dati è A, D, A, B, C, D. Utilizzando 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 mostra una A e una D ciascuna. Pertanto, il TreeSet memorizza elementi univoci. Non esiste un ordine di inserzione particolare, ma osservando l'output, si può vedere che il 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 venga mantenuto.
Figura 02: programma con HashSet
Secondo il programma precedente, viene creato un oggetto di tipo HashSet. Gli elementi di dati della stringa vengono aggiunti a quell'oggetto utilizzando il metodo add. L'ordine dei dati inseriti è L, R, M, M, R, L. Usando l'iteratore, i valori memorizzati vengono stampati sullo schermo. L'output è RL M. Anche se ci sono due lettere L, R e M per ciascuna, viene visualizzata solo una lettera per ciascuna. Pertanto, HashSet memorizza elementi unici. Osservando l'output, 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 raccolta.
- Sia TreeSet che HashSet memorizzano solo elementi univoci.
- Sia TreeSet che HashSet possono essere utilizzati per memorizzare e manipolare molti elementi.
- Sia TreeSet che HashSet non mantengono l'ordine inserito.
Qual è la differenza tra TreeSet e HashSet?
Articolo diff. Al centro prima della tabella
TreeSet vs HashSet |
|
TreeSet è una classe nella gerarchia della raccolta utilizzata per memorizzare elementi univoci in ordine crescente. | HashSet è una classe nella gerarchia di raccolta che viene utilizzata per memorizzare elementi univoci utilizzando il meccanismo di hash. |
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 dinamicamente gli elementi di dati. I linguaggi di programmazione come Java supportano le raccolte per eseguire questa operazione. Esiste una serie di interfacce e classi nella gerarchia della raccolta. 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 univoci in ordine crescente. HashSet è una classe che implementa l'interfaccia Set e viene utilizzata per memorizzare elementi univoci utilizzando il meccanismo di hash. 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.