Generics
• Java 5 introduced generic (class) types.
• This means that it is possible to define parametric (class) types.
• An algorithm can be defined once, parametrically on the (class) type of data to which can be applied.
class Lista <Elemento>{
/** Rappresentazione del TDA lista semplice generico */
private Elemento elem;
Lista <Elemento> next;
public Lista (){next = null; } // costruttore public void elimina()
{if (next!=null) {next = next.next;} // recupero memoria (automatico) }
public Elemento leggi(){
if (next!=null) return next.elem;
else return(null);}
public void inserisci(Elemento x) // inserisce in testa {Lista<Elemento> p = new Lista<Elemento>();
p.elem = x;
p.next = next;
next = p;
}
public void stampa() //stampa l'intera lista { Lista<Elemento> temp = next;
while (temp!=null) {System.out.println("Elem. = " + temp.elem);
temp = temp.next;}
} }
public class ListaGenerica {
public static void main(String args[]) { // programma di prova
Lista<String> q = new Lista<String>();
String x="1";
q.inserisci(x);
q.inserisci("2");
q.inserisci("4");
q.stampa();
q.elimina();
q.stampa();
Lista<Integer> r = new Lista<Integer>();
int y=1;
r.inserisci(y);
r.inserisci(2);
r.inserisci(4);
r.stampa();
r.elimina();
r.stampa();
} }
ListaGenerica.main({ });
4
Elem. = 4 Elem. = 2 Elem. = 1 Elem. = 2 Elem. = 1 Elem. = 4 Elem. = 2 Elem. = 1 Elem. = 2 Elem. = 1