Risposte:
Prima di tutto: a List
è a Collection
. È specializzato Collection
, tuttavia.
A Collection
è proprio questo: una collezione di oggetti. È possibile aggiungere elementi, rimuovere elementi, scorrere gli elementi e interrogare quanti elementi sono presenti.
A List
aggiunge le informazioni su una sequenza definita di elementi: puoi ottenere l'elemento in posizione n , puoi aggiungere un elemento in posizione n , puoi rimuovere l'elemento in posizione n .
In un Collection
non puoi farlo: "il 5 ° elemento in questa raccolta" non è definito, perché non esiste un ordine definito.
Esistono anche altre raccolte specializzate, ad esempio una Set
che aggiunge la caratteristica che non conterrà mai lo stesso elemento due volte.
Collection
è l'interfaccia principale della gerarchia di java Collections. List
è un'interfaccia secondaria che definisce una raccolta ordinata, altre interfacce secondarie Queue
che in genere memorizzano elementi pronti per l'elaborazione (ad es. stack ).
Il diagramma seguente mostra la relazione tra i diversi tipi di raccolta Java:
Map
non sia un Collection
.
L'API Java è la migliore per rispondere a questa domanda
Collezione
L'interfaccia di root nella gerarchia della raccolta. Una raccolta rappresenta un gruppo di oggetti, noti come i suoi elementi. Alcune raccolte consentono elementi duplicati e altre no. Alcuni sono ordinati e altri non ordinati. JDK non fornisce implementazioni dirette di questa interfaccia: fornisce implementazioni di interfacce secondarie più specifiche come Set ed Elenco. Questa interfaccia viene in genere utilizzata per passare raccolte e manipolarle dove si desidera la massima generalità.
Elenco (estende la raccolta)
Una raccolta ordinata (nota anche come sequenza). L'utente di questa interfaccia ha un controllo preciso su dove viene inserito ciascun elemento nell'elenco. L'utente può accedere agli elementi in base al loro indice intero (posizione nell'elenco) e cercare elementi nell'elenco.
A differenza dei set, gli elenchi in genere consentono elementi duplicati. Più formalmente, gli elenchi in genere consentono coppie di elementi e1 ed e2 tali che e1.equals (e2) e in genere consentono più elementi null se consentono affatto elementi null. Non è inconcepibile che qualcuno potrebbe voler implementare un elenco che proibisce i duplicati, generando eccezioni di runtime quando l'utente tenta di inserirli, ma ci aspettiamo che questo utilizzo sia raro.
Elenco e Set sono due sottoclassi di Collection.
In Elenco, i dati sono in ordine particolare.
In Set, non può contenere gli stessi dati due volte.
In Collection, memorizza solo i dati senza un ordine particolare e può contenere dati duplicati.
Collection è un'interfaccia di alto livello che descrive oggetti Java che possono contenere raccolte di altri oggetti. Non è molto specifico su come accedervi, se possono esistere più copie dello stesso oggetto nella stessa raccolta o se l'ordine è importante. L'elenco è specificamente un ordine raccolta di oggetti. Se si inseriscono oggetti in un Elenco in un ordine particolare, rimarranno in quell'ordine.
E decidere dove utilizzare queste due interfacce è molto meno importante che decidere quale sia l'implementazione concreta che si utilizza. Ciò avrà implicazioni per le prestazioni di tempo e spazio del tuo programma. Ad esempio, se si desidera un elenco, è possibile utilizzare un ArrayList o un LinkedList, ognuno dei quali avrà implicazioni per l'applicazione. Per altri tipi di raccolta (ad es. Set), valgono considerazioni simili.
Collection è la super interfaccia di List, quindi ogni elenco Java è anche un'istanza di collection. Le raccolte sono iterabili solo in sequenza (e in nessun ordine particolare) mentre una Lista consente l'accesso a un elemento in una determinata posizione tramite il get(int index)
metodo.