Differenza chiave – Elenco vs Set
La maggior parte dei linguaggi di programmazione utilizza gli array per memorizzare un insieme 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 delle raccolte. Esistono diversi tipi di raccolte disponibili nei linguaggi di programmazione come Java. List e Set sono interfacce della gerarchia delle raccolte. L'interfaccia di base per altre interfacce è Collection. Il differenza fondamentale tra List e Set è quello List supporta la memorizzazione dello stesso elemento più volte mentre Set non supporta la memorizzazione dello stesso elemento più volte. Pertanto, un Set non consente la duplicazione.
Cos'è List?
L'elenco è un'interfaccia che estende l'interfaccia Collection. C'è un certo numero di metodi nell'interfaccia Collection. Il metodo add aiuta ad aggiungere un elemento. Il "metodo di rimozione" consiste nel rimuovere un elemento. Esiste 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 per scoprire se un insieme di oggetti è presente nella collezione. 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, List 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 in corrispondenza di 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 quindi viene aggiunto l'elemento2, l'elemento1 sarà prima dell'elemento2.
Figura 01: Elenca e imposta
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. LinkedList implementa List e Queue Both. Vector è simile a ArrayList, ma è sicuro perché tutti i metodi sono sincronizzati.
Che 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. L'interfaccia NavigableSet estende SortedSet. 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.
- Entrambe le operazioni di supporto List e Set come l'aggiunta e la rimozione di elementi.
Qual è la differenza tra elenco e set?
Elenco vs Set |
|
List Interface è l'interfaccia secondaria di Collection che contiene metodi per eseguire operazioni come inserire, eliminare in base all'indice. | Set Interface è una sottointerfaccia 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 elemento | |
L'elenco supporta la duplicazione degli elementi. | Set non supporta la duplicazione degli 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 Collection. List e Set sono due interfacce che appartengono all'interfaccia Collection. Entrambe le interfacce estendono Collection. Questo articolo ha discusso la differenza tra List e Set. Il differenza fondamentale tra List e Set è quello List supporta la memorizzazione dello stesso elemento più volte mentre Set non supporta la memorizzazione dello stesso elemento più volte. Il set mantiene sempre elementi unici.