Codice:

codice:
// Demonstrate ArrayList. 
import java.util.*; 
 
class ArrayListDemo { 
  public static void main(String args[]) { 
    // Create an array list. 
    ArrayList<String> al = new ArrayList<String>(); 
     
    System.out.println("Initial size of al: " + 
                       al.size()); 
 
    // Add elements to the array list. 
    al.add("C"); 
    al.add("A"); 
    al.add("E"); 
    al.add("B"); 
    al.add("D"); 
    al.add("F"); 
    al.add(1, "A2"); 
 
    System.out.println("Size of al after additions: " + 
                       al.size()); 
 
    // Display the array list. 
    System.out.println("Contents of al: " + al); 
 
    // Remove elements from the array list. 
    al.remove("F"); 
    al.remove(2); 
 
    System.out.println("Size of al after deletions: " + 
                       al.size()); 
    System.out.println("Contents of al: " + al); 
  } 
}
Il manuale inizia con un lungo elenco di classi però vorrei riassumere un pochetto cercando di capire quale conviene usare a seconda dei casi quando si usa il metodo add().

1-ArrayList per esempio con add() mette in ordine di inserimento i valori ma è lento.
2-LinkedList mette in ordine ed è lento quindi non capisco la differenza rispetto al precedente.
3-HashSet non mette in ordine ma è veloce (in realtà non è più veloce ma è sempre ugualmente veloce all'aumentare della dimensione della collection... ho riassunto per capirci... e per non farne un messale...)
4-LinkedHashSed non c'è scritto se è veloce o se è lento ma funziona come i primi 2 (la confusione diventa sempre più grande)
5-TreeSet mette in ordine crescente ma non si capisce se sia veloce o lento (penso lento ma non saprei).
6-ArrayDeque: sul testo c'é scritta una frase incomprensibile:
(l'interfaccia Deque supporta implementazioni che limitano la capacità, ma non tali limitazioni non sono necessarie)
7-EnumSet invece si usa per le enumerazioni.