Differenza tra TreeSet e HashSet

Sommario:

Differenza tra TreeSet e HashSet
Differenza tra TreeSet e HashSet

Video: Differenza tra TreeSet e HashSet

Video: Differenza tra TreeSet e HashSet
Video: HashSet Vs LinkedHashSet Vs TreeSet - Collection Framework 2024, Luglio
Anonim

Differenza chiave – TreeSet vs HashSet

La maggior parte dei linguaggi di programmazione supporta gli array. È una struttura dati utilizzata per memorizzare più elementi dello stesso tipo di dati. Se è stato dichiarato un array 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 dichiarata. I linguaggi di programmazione come Java supportano le raccolte utilizzate per archiviare i dati in modo dinamico. Le raccolte supportano operazioni come l'aggiunta e l'eliminazione di elementi. Nella gerarchia della raccolta sono presenti numerose interfacce e classi. 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 entrambe 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 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 univoci.

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 archiviati 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.

Differenza tra TreeSet e HashSet
Differenza tra TreeSet e HashSet

Figura 01: Programma con TreeSet

Secondo il programma sopra, viene creato un oggetto di tipo TreeSet. Gli elementi di dati stringa vengono aggiunti a quell'oggetto utilizzando il metodo add. L'ordine dei dati inseriti è 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 D, l'output mostra una A e una D ciascuna. Pertanto, il TreeSet memorizza elementi univoci. Non esiste un ordine di inserimento particolare ma osservando l'output, si può notare che il TreeSet mantiene l'ordine crescente degli elementi.

Cos'è un HashSet?

La classe HashSet estende la classe AbstractSet che implementa l'interfaccia Set. L'interfaccia Set eredita le interfacce Collection e Iterable in ordine gerarchico. In HashSet, non vi è alcuna garanzia che gli elementi mantengano 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 archiviazione può anche essere A, B, C ma non vi è alcuna garanzia che l'ordine inserito o l'ordine crescente venga mantenuto.

Differenza chiave tra TreeSet e HashSet
Differenza chiave tra TreeSet e HashSet

Figura 02: Programma con HashSet

Secondo il programma sopra, viene creato un oggetto di tipo HashSet. Gli elementi di dati stringa vengono aggiunti a quell'oggetto utilizzando il metodo add. L'ordine dei dati inseriti è L, R, M, M, R, L. Utilizzando l'iteratore, i valori memorizzati vengono stampati sullo schermo. L'output è R L M. Anche se ci sono due lettere L, R e M per ciascuna, viene visualizzata solo una lettera per ciascuna. Pertanto, HashSet memorizza elementi univoci. Osservando l'output, si può notare 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 unici.
  • Sia TreeSet che HashSet possono essere usati per memorizzare 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 della raccolta che viene utilizzata per memorizzare elementi univoci in ordine crescente. HashSet è una classe nella gerarchia della raccolta che viene utilizzata per memorizzare elementi univoci utilizzando il meccanismo di Hashing.
Memorizzazione elemento
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. Linguaggi di programmazione come Java supportano le raccolte per svolgere questa attività. Nella gerarchia della raccolta sono presenti numerose interfacce e classi. 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 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.

Consigliato: