Beispiele für die Verwendung von ArrayList und Generics - 1

„Am besten beginne ich mit dem, was wirklich nützlich ist. Ich zeige dir jetzt ein paar Möglichkeiten, wie ArrayList und Generics eingesetzt werden können:“

„Beispiel 1:“

Eine Liste von Zahlen von der Tastatur lesen
public static void main(String[] args) throws IOException
{
    BufferedReader reader = new BufferedReader(new InputStreamReader(System.in) );
    ArrayList<Integer> liste = new ArrayList<Integer>() ;

    while (true)
    {
        String s = reader.readLine();
        if (s.isEmpty()) break;
        liste.add(Integer.parseInt(s));
    }
}

„Beispiel 2:“

Wie oben, aber gerade Zahlen werden am Ende der Liste hinzugefügt, ungerade am Anfang der Liste.
public static void main(String[] args) throws IOException
{
    BufferedReader reader = new BufferedReader(new InputStreamReader(System.in));
    ArrayList<Integer> liste = new ArrayList<Integer>();

    while (true)
    {
        String s = reader.readLine();
        if (s.isEmpty()) break;

        int x = Integer.parseInt(s);
        if (x % 2 == 0)
            liste.add(x);         // Am Ende hinzufügen
        else
            liste.add(0, x);      // Am Anfang hinzufügen           
    }
}

„Beispiel 3:“

Alle Zahlen löschen, die größer als 5 sind:
public static void main(String[] args) throws IOException
{
    BufferedReader reader = new BufferedReader(new InputStreamReader(System.in) );
    ArrayList<Integer> liste = new ArrayList<Integer>();

    liste.add(1);
    liste.add(7);
    liste.add(11);
    liste.add(3);
    liste.add(15);

    for (int i = 0; i < liste.size(); ) // Wir haben die Anweisung zum Erhöhen von i in die Schleife verschoben 
    { 
        if (liste.get(i) > 5)
            liste.remove(i);  // Erhöhe i nicht, wenn wir das aktuelle Element gelöscht haben   
        else
            i++;
    }
}

„Beispiel 4:“

Ein Array in zwei Teile teilen – gerade und ungerade Zahlen
public static void main(String[] args) throws IOException
{
    // Statische Initialisierung des Arrays
    int[] daten = {1, 5, 6, 11, 3, 15, 7, 8};  

    // Liste erstellen, in der alle Elemente Integer sind 
    ArrayList<Integer> liste = new ArrayList<Integer> ();

    // Array verwenden, um die Liste zu füllen
    for (int i = 0; i < daten.length; i++) liste.add(daten[i]);  

    ArrayList<Integer> gerade = new ArrayList<Integer>();  // Gerade Zahlen
    ArrayList<Integer> ungerade = new ArrayList<Integer>();    // Ungerade Zahlen

    for (int i = 0; i < liste.size(); i++)
    {
        Integer x = liste.get(i);
        if (x % 2 == 0)    // Wenn x gerade ist
            gerade.add(x);   // x zur Collection der geraden Zahlen hinzufügen  
        else
            ungerade.add(x);    // x zur Collection der ungeraden Zahlen hinzufügen
    }
}

„Beispiel 5:“

Listen zusammenführen
public static void main(String[] args) throws IOException
{
    ArrayList<Integer> liste1 = new ArrayList<Integer>();   // Liste erstellen
    Collections.addAll(liste1, 1, 5, 6, 11, 3, 15, 7, 8);   // Liste füllen

    ArrayList<Integer> liste2 = new ArrayList<Integer>();
    Collections.addAll(liste2, 1, 8, 6, 21, 53, 5, 67, 18);

    ArrayList<Integer> ergebnis = new ArrayList<Integer>();

    ergebnis.addAll(liste1);   // Werte aus jeder Liste zur neuen Liste hinzufügen
    ergebnis.addAll(liste2);

    for (Integer x : ergebnis)   // Eine schnelle Möglichkeit, alle Elemente zu durchlaufen, nur für Collections
    {
        System.out.println(x);
    }
}

„Cool! Wird Diego mir jetzt eine LKW-Ladung mit ähnlichen Übungen geben?“

„Ja, das wird er.“