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
    }
}
2
Aufgabe
Java Syntax,  Level 7Lektion 8
Gesperrt
Code-Eingabe
Manchmal darf man gar nicht nachdenken, man muss es einfach raushauen! Auch wenn es sich paradox anhört, manchmal „erinnern“ sich deine Finger besser als dein bewusster Verstand. Deshalb wirst du es im Rahmen der Schulung im geheimen CodeGym-Zentrum manchmal mit Aufgaben zu tun bekommen, bei denen du Code eingeben musst. Wenn du Code eingibst, gewöhnst du dich an die Syntax und sammelst ein wenig dunkle Materie. Außerdem tust du etwas gegen deine Faulheit!

„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.“