Differenza chiave: elenco vs set
La maggior parte dei linguaggi di programmazione utilizza gli array per memorizzare un set di dati dello stesso tipo. Uno dei principali svantaggi degli array è che, una volta dichiarata la dimensione dell'array, non può essere modificata. Se il programmatore desidera memorizzare un valore che supera la dimensione dell'array, deve creare un nuovo array e copiare gli elementi esistenti nel nuovo array. In queste situazioni, è possibile utilizzare le raccolte. È possibile aggiungere elementi, eliminare elementi e molte altre operazioni con il supporto di raccolte. Sono disponibili diversi tipi di raccolte nei linguaggi di programmazione come Java. List e Set sono interfacce della gerarchia delle raccolte. L'interfaccia di base per altre interfacce è Collection. La differenza fondamentale tra List e Set è che List supporta la memorizzazione dello stesso elemento più volte mentre Set non supporta la memorizzazione dello stesso elemento più volte. Perciò,un Set non consente la duplicazione.
CONTENUTI
1. Panoramica e differenza principale
2. Che cos'è l'elenco
3. Che cos'è il set
4. Somiglianze tra elenco e set
5. Confronto affiancato - Elenco vs set in forma tabulare
6. Riepilogo
Cos'è List?
L'elenco è un'interfaccia che estende l'interfaccia Collection. Ci sono diversi metodi nell'interfaccia Collection. Il metodo add aiuta ad aggiungere un elemento. Il "metodo di rimozione" consiste nel rimuovere un elemento. C'è il "metodo addAll" per aggiungere più elementi mentre il "metodo removeAll" per rimuovere gli elementi dalla raccolta. Il metodo contiene aiuta a scoprire se un oggetto specifico è presente nell'elenco o meno. Il 'containsAll' serve a scoprire se un insieme di oggetti è presente nella raccolta. Il metodo iteratore viene utilizzato per scorrere gli elementi dell'elenco. Poiché List estende Collection, tutti i metodi di Collection appartengono a List. Oltre a questi metodi, l'elenco ha metodi come get e set. Il programmatore può ottenere un valore in un indice specifico utilizzando il metodo get. Il programmatore può impostare un valore a un indice specifico utilizzando il metodo set."IndexOf" viene utilizzato per trovare l'indice di un elemento.
In un elenco, le operazioni possono essere eseguite in base alla posizione. Il programmatore può fornire l'elemento dati che deve essere aggiunto all'indice. Quindi verrà aggiunto all'indice specifico. Se il programmatore non fornisce un indice, l'elemento verrà aggiunto alla fine della lista. Mantiene anche l'ordine inserito. Se viene aggiunto l'elemento 1 e poi viene aggiunto element2, l'elemento1 sarà prima dell'elemento2.
Figura 01: elenco e set
ArrayList, LinkedList, Vector sono alcune classi che implementano List. In un ArrayList, l'accesso a un elemento è veloce ma l'inserimento e l'eliminazione sono inferiori. ArrayList non è thread-safe. L'accesso allo stesso ArrayList da più thread potrebbe non dare lo stesso risultato. In una LinkedList, gli elementi sono collegati sia all'indietro che in avanti. L'inserimento e l'eliminazione di elementi utilizzando un LinkedList è più veloce di ArrayList. La LinkedList implementa List e Queue Both. Vector è simile a ArrayList, ma è sicuro perché tutti i metodi sono sincronizzati.
Cos'è impostato?
Set è un'interfaccia che estende l'interfaccia Collection. Poiché l'interfaccia di Set estende Collection, anche tutti i metodi di Collection appartengono a Set. Un set non supporta i valori di duplicazione. Pertanto, il programmatore non può memorizzare due volte lo stesso elemento. Mantiene un insieme unico di elementi. L'interfaccia SortedSet estende l'interfaccia Set. SortedSet mantiene gli elementi in ordine ordinato. L'interfaccia NavigableSet estende SortedSet. Il NavigableSet fornisce metodi di navigazione come inferiore, pavimento, soffitto ecc.
HashSet, LinkedHashSet e TreeSet sono alcune classi che implementano l'interfaccia Set. HashSet implementa l'interfaccia Set. Non mantiene l'ordine inserito. Se i valori vengono inseriti come a, x, b, potrebbero essere memorizzati come, x, a, b. Il LinkedSet mantiene l'ordine inserito. Se gli elementi sono inseriti in un ordine a, x, b, l'ordine di memorizzazione sarà a, x, b. Il TreeSet implementa Set e NavigableSet. Non mantiene l'ordine di inserimento ma memorizza gli elementi nell'ordine ordinato. Se l'ordine inserito è a, c, b, gli elementi verranno memorizzati come a, b, c. Tutti gli HashSet, LinkedHashSet e TreeSet non avranno elementi duplicati.
Quali sono le somiglianze tra List e Set?
- Entrambe le interfacce List e Set estendono l'interfaccia Collection.
- Sia List che Set supportano operazioni come l'aggiunta e la rimozione di elementi.
Qual è la differenza tra List e Set?
Elenco vs Set |
|
List Interface è l'interfaccia secondaria di Collection che contiene metodi per eseguire operazioni come inserimento, cancellazione in base all'indice. | Set Interface è un'interfaccia secondaria di Collection che contiene metodi per eseguire operazioni come inserire, eliminare elementi mantenendo gli elementi univoci. |
Classi | |
ArrayList, Vector e LinkedList sono classi che implementano l'interfaccia List. | HashSet, LinkedHashSet e TreeSet sono classi che implementano l'interfaccia Set. |
Duplicazione di elementi | |
List supporta la duplicazione degli elementi. | Set non supporta la duplicazione di elementi. Gli elementi sono unici. |
Riepilogo: elenco vs set
Le raccolte vengono utilizzate per memorizzare gli elementi in modo dinamico. I linguaggi di programmazione come Java forniscono l'interfaccia di raccolta. List e Set sono due interfacce che appartengono all'interfaccia Collection. Entrambe le interfacce estendono la raccolta. Questo articolo ha discusso la differenza tra List e Set. La differenza fondamentale tra List e Set è che List supporta la memorizzazione dello stesso elemento più volte mentre Set non supporta la memorizzazione dello stesso elemento più volte. Set mantiene sempre elementi unici.