Dal corso: Programmazione Java avanzata
Il contesto Collections in Java - Tutorial Java
Dal corso: Programmazione Java avanzata
Il contesto Collections in Java
- [Istruttore] Le raccolte sono una parte essenziale del linguaggio di programmazione Java. Consentono di raggruppare gli oggetti, in un contenitore, su cui è possibile eseguire l'iterazione, in Java. Esistono molte implementazioni diverse delle raccolte. Il tipo di collezione che scegli di utilizzare dipende dalle tue esatte esigenze. Ma ci sono alcuni fattori chiave da tenere a mente. Innanzitutto, l'ordine è importante? A volte, va bene avere tutte le voci in ordine casuale. Ma, a volte, è importante potervi accedere in un ordine specifico. In secondo luogo, sono consentiti i duplicati? Ci sono alcune situazioni in cui va bene avere voci duplicate e altre, in cui ogni voce dovrebbe essere diversa. Un altro fattore da considerare è la velocità con cui si eseguiranno le operazioni. Diversi tipi di raccolte richiedono tempi diversi per eseguire determinate operazioni. Alcuni sono veloci nel recuperare le voci. Alcuni sono più veloci nell'aggiungerli e rimuoverli. Infine, anche la memoria utilizzata è un fattore. Alcuni tipi di raccolte occupano più memoria di altri. Una risorsa utile per la scelta della collezione da utilizzare è un diagramma di flusso disponibile a questo link. In Java esiste un insieme di interfacce che definiscono diversi tipi di raccolta. In cima alla gerarchia c'è Iterable. Tutti i tipi di raccolta implementano Iterable e dichiara il metodo forEach. Poi, c'è l'interfaccia di raccolta, che estende Iterable. Questa interfaccia dichiara tutti i metodi che ogni insieme deve avere. Ad esempio, add remove è vuoto, toArray e così via. Non esistono classi che rappresentano direttamente un'implementazione concreta della raccolta. Prima di arrivare alle classi concrete, c'è un altro livello di interfacce. Questi includono set, list e queue. Ce ne sono molti altri, ma questi sono tre dei più comunemente usati. Queste interfacce definiscono un set più specifico di comportamenti relativi al comportamento dell'insieme. Gli insiemi sono un tipo di raccolta che non consente la duplicazione di elementi. Sono anche non ordinati. Ad esempio, se stai creando un gioco di carte e vuoi assicurarti che non ci siano carte duplicate nel gioco, puoi conservarle in un set. Le liste, d'altra parte, consentono voci duplicate. Anche l'ordine degli elementi in un elenco è significativo. Quando si esegue l'iterazione su un elenco, gli elementi non vengono restituiti in un ordine casuale, come nel caso di un set. Le code sono un tipo di raccolta che consente di aggiungere elementi alle intestazioni della raccolta. In genere utilizzano operazioni first-in, first-out. Sono un po' come le code della vita reale in un negozio, dove la prima persona ad arrivare è la prima persona ad essere servita. C'è anche un'altra struttura chiamata mappe. Le mappe in realtà non estendono l'interfaccia di raccolta. Ciò è dovuto al fatto che contengono coppie chiave-valore, che non sono adatte a essere elementi di una raccolta, tuttavia sono comunque considerate parte del framework delle raccolte in Java. Se vuoi saperne di più sulle collezioni in generale, un buon punto di partenza sono i tutorial di Oracle a questi due link.
Fai pratica con gli esercizi mentre impari la teoria
Scarica i documenti che l’istruttore utilizza per tenere i corsi. Segui e impara guardando, ascoltando ed esercitandoti.