ArrayList<Persona> l = new ArrayList<Persona>(0);
l.add(new Persona(27, "marco", "bianco"));
 
Iterator<Persona> pit = l.iterator();
while (pit.hasNext()) {
  Persona p = pit.next();
  System.out.println(p);
}
 
for (int i=0; i<l.size(); i++){
  Persona p = l.get(i);
  System.out.println(p);
}
 
Collection<String> coll=new ArrayList<String>();
    for(String tmp:args){
      coll.add(tmp);
    }
    for(String tmp:coll){
      System.out.println(tmp);
    }

Generics => compile time control, preferiti perché più sicuri alle liste classiche

Collection<String> lista = new ArrayList<String>();
  lista.add("Ciao");
  //segnala errore in fase di compilazione
  lista.add(new Integer(5));
 
  Iterator<String> it=lista.iterator();
  while(it.hasNext()){
    //Non è necessario il cast
    String tmp = it.next();
  }
Map<Integer, String> hm = new HashMap<Integer, String>();
mappa.put(2, "Pasquale");
public static void var_dump(Collection<?> l){}
 
public static void test(){
  Collection<String> a = new ArrayList<String>();
  var_dump(a);
}

Generic Classes

package devsmt.generics;
 
import java.util.Iterator;
import java.util.Stack;
 
public class Pila<N extends Number> implements Iterable<N>{
 
  private Stack<N> list;
 
  public Pila(){ list=new Stack<N>(); }
 
  public void add(N element){ list.push(element); }
 
  public N remove(){ return list.pop(); }
 
  boolean isEmpty(){ return list.isEmpty(); }
 
  @Override
  public Iterator<N> iterator() { return list.iterator(); }
}

HashSet

set non ammette duplicati, è ordinata

HashSet<Persona> hash = new HashSet<Persona>(0);
hash.add(new Persona(27, "marco", "bianco"));
Iterator<Persona> it = hash.iterator();
while (it.hasNext()){
  Persona p = it.next();
  System.out.println(p);
}

HashMap / Hashtable

permette duplicati, ordine casuale

HashMap<String, Persona> hash = new HashMap<String, Persona>(0);
hash.put("marco", new Persona(27, "marco", "bianco"));
 
Collection<Persona> collection = hash.values();
Iterator<Persona> it = collection.iterator();
while (it.hasNext()){
  Persona p = it.next();
  System.out.println(p);
}
 
System.out.println(hash.get("marco"));

Enumerations

public class EnumTest {
  public enum Weekday {LUN,MAR,MER,GIO,VEN,SAB,DOM};
 
  public static void main(String[] args) {
    System.out.println("Stampa la lista dei valori");
    //Ciclo for-in
    for(Weekday d:Weekday.values()){
      System.out.println(d);
    }
 
    //Scelgo un valore
    Weekday d = Weekday.GIO;
 
    //definisco una logica
    switch(d){
      case LUN:
        System.out.println("Oggi è Lunedi");
        break;
      case MAR:
        System.out.println("Oggi è Martedi");
        break;
      case MER:
        System.out.println("Oggi è Mercoledi");
        break;
      case GIO:
        System.out.println("Oggi è Giovedi");
        break;
      case VEN:
        System.out.println("Oggi è Venerdi");
        break;
      case SAB:
        System.out.println("Oggi è Sabato");
        break;
      case DOM:
        System.out.println("Oggi è Domenica");
        break;
    }
  }
}

StringBuilder

StringBuilder tmp = new StringBuilder(); // Using default 16 character size
tmp.append("prefix ");
tmp.append(variable1);
tmp.append(" middle ");
tmp.append(variable2);
tmp.append(" end");
return tmp.toString();