La maggior parte dei linguaggi di programmazione utilizza matrici 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 superiore alla 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. Ci sono diversi tipi di collezioni disponibili in linguaggi di programmazione come Java. Elenco e Set sono interfacce della gerarchia delle collezioni. L'interfaccia di base per altre interfacce è Raccolta. 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.
1. Panoramica e differenza chiave
2. Cos'è l'elenco
3. Cosa è impostato
4. Somiglianze tra elenco e set
5. Confronto affiancato - Elenco vs Imposta in forma tabulare
6. Sommario
L'elenco è un'interfaccia che estende l'interfaccia Collection. Esiste una serie di metodi nell'interfaccia di raccolta. Il metodo add aiuta ad aggiungere un elemento. Il "metodo di rimozione" è rimuovere un elemento. C'è un "metodo addAll" per aggiungere più elementi mentre "removeAll method" per rimuovere gli elementi dalla collezione. Il metodo contiene aiuta a scoprire se un oggetto specifico è presente o meno nell'Elenco. Il 'containsAll' è per trovare se un insieme di oggetti sono presenti nella collezione. Il metodo iteratore viene utilizzato per scorrere tra gli elementi dell'elenco. Mentre List estende la 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 su un indice specifico usando il metodo set. 'IndexOf' è usato per trovare l'indice di un elemento.
In una lista, le operazioni possono essere eseguite in base alla posizione. Il programmatore può fornire l'elemento di dati che deve essere aggiunto all'indice. Quindi sarà aggiunto all'indice specifico. Se il programmatore non fornisce un indice, l'elemento verrà aggiunto alla fine dell'elenco. Mantiene anche l'ordine inserito. Se viene aggiunto l'elemento 1 e quindi viene aggiunto l'elemento 2, l'elemento 1 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 alla stessa ArrayList da più thread potrebbe non dare lo stesso risultato. In una lista collegata, gli elementi sono collegati sia indietro che avanti. L'inserimento e l'eliminazione di elementi tramite LinkedList è più veloce di ArrayList. Il LinkedList implementa entrambi List e Queue. Il vettore è simile a ArrayList, ma è sicuro per il fatto che tutti i metodi sono sincronizzati.
Set è un'interfaccia che estende l'interfaccia Collection. Poiché l'interfaccia Set estende la raccolta, tutti i metodi di raccolta appartengono anche a Set. Un set non supporta i valori di duplicazione. Pertanto, il programmatore non può memorizzare lo stesso elemento due volte. 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. Il HashSet implementa Imposta interfaccia. Non mantiene l'ordine inserito. Se i valori sono inseriti come a, x, b potrebbe memorizzare come, x, a, b. Il LinkedSet mantiene l'ordine inserito. Se gli elementi sono inseriti nell'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, allora gli elementi saranno memorizzati come a, b, c. Tutti HashSet, LinkedHashSet e TreeSet non avranno alcun elemento duplicato.
Lista vs Set | |
List Interface è l'interfaccia secondaria di Collection che contiene metodi per eseguire operazioni come insert, delete in base all'indice. | Set Interface è un'interfaccia secondaria di Collection che contiene metodi per eseguire operazioni come insert, delete elements 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 di elementi. | Set non supporta la duplicazione di elementi. Gli elementi sono unici. |
Le raccolte vengono utilizzate per memorizzare gli elementi in modo dinamico. I linguaggi di programmazione come Java forniscono un'interfaccia Collection. Elenco 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 chiave 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.
1. Punto, esercitazioni. "Collezioni Java"., Punto tutorial, 8 gennaio 2018. Disponibile qui