Memorizzare classi definite dall'utente in una Collezione in Java
- Le collezioni in Java possono memorizzare oggetti di classi definite dall'utente, non solo tipi integrati.
- Utilizzando collezioni come
LinkedList
, è possibile gestire facilmente e visualizzare oggetti complessi come indirizzi postali. - Il Framework delle Collezioni fornisce soluzioni pronte all'uso per gestire e manipolare dati, riducendo la quantità di codice necessario per implementare funzionalità comuni.
Collezioni e Classi Definite dall'Utente
Per semplicità, gli esempi delle lezioni precedenti hanno memorizzato oggetti integrati, come String
o Integer
, in una collezione.
Naturalmente, le collezioni non sono limitate alla memorizzazione di oggetti integrati, anzi vale il contrario. Il potere delle collezioni è che possono memorizzare qualsiasi tipo di oggetto, inclusi oggetti di classi create dall'utente.
Ad esempio, consideriamo il seguente esempio che usa una LinkedList
per memorizzare indirizzi postali:
// Un semplice esempio di lista di indirizzi postali.
import java.util.*;
class Indirizzo {
private String nome;
private String via;
private String citta;
private String cap;
Indirizzo(String n, String v, String c,
String cap) {
nome = n;
via = v;
citta = c;
this.cap = cap;
}
public String toString() {
return nome + "\n" + via + "\n" +
citta + " " + cap;
}
}
class ListaPostale {
public static void main(String[] args) {
// Crea una LinkedList di tipo Indirizzo.
LinkedList<Indirizzo> lp = new LinkedList<Indirizzo>();
// Aggiunge elementi alla lista collegata.
lp.add(new Indirizzo("Michele Verdi",
"Via Quercia 11",
"Milano", "20100"));
lp.add(new Indirizzo("Mario Rossi", "Viale Acero 42",
"Roma", "00100"));
lp.add(new Indirizzo("Luca Bianchi", "Via Olmo 86",
"Torino", "10100"));
// Visualizza la lista postale.
for (Indirizzo elemento : lp)
System.out.println(elemento + "\n");
System.out.println();
}
}
L'output del programma è mostrato qui:
Michele Verdi
Via Quercia 11
Milano 20100
Mario Rossi
Viale Acero 42
Roma 00100
Luca Bianchi
Via Olmo 86
Torino 10100
Oltre a memorizzare una classe definita dall'utente in una collezione, un'altra cosa importante da notare riguardo al programma precedente è che è abbastanza breve.
Quando consideriamo che imposta una lista collegata che può memorizzare, recuperare ed elaborare indirizzi postali in circa 50 righe di codice, il potere del Framework delle Collezioni inizia a diventare evidente. Se tutte queste funzionalità dovessero essere codificate manualmente, il programma sarebbe diverse volte più lungo. Le collezioni offrono soluzioni pronte all'uso a un'ampia varietà di problemi di programmazione. Andrebbero usate ogni volta che la situazione si presenta.