CodeGym /Kurse /Java Syntax /Beispiele für die Verwendung von ArrayList und Generics

Beispiele für die Verwendung von ArrayList und Generics

Java Syntax
Level 7 , Lektion 8
Verfügbar
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> list = new ArrayList<Integer>() ;

    while (true)
    {
        String s = reader.readLine();
        if (s.isEmpty()) break;
        list.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> list = new ArrayList<Integer>();

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

        int x = Integer.parseInt(s);
        if (x % 2 == 0)  // Check that the remainder is zero when we divide by two
            list.add(x);         // Add to the end
        else
            list.add(0, x);      // Add to the beginning           
    }
}

„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> list = new ArrayList<Integer>();

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

    for (int i = 0; i < list.size(); ) // We moved the statement that increases i to inside the loop 
    { 
        if (list.get(i) > 5)
            list.remove(i);  // Don’t increase i if we deleted the current element   
        else
            i++;
    }
}

„Beispiel 4:“

Ein Array in zwei Teile teilen – gerade und ungerade Zahlen
public static void main(String[] args) throws IOException
{
    // Static initialization of the array
    int[] data = {1, 5, 6, 11, 3, 15, 7, 8};  

    // Create a list where all elements are Integers 
    ArrayList&ltInteger> list = new ArrayList&ltInteger> ();   

    // Use the array to fill the list
    for (int i = 0; i < data.length; i++) list.add(data[i]);  

    ArrayList&ltInteger> even = new ArrayList&ltInteger>();  // Even numbers
    ArrayList&ltInteger> odd = new ArrayList&ltInteger>();    // Odd numbers

    for (int i = 0; i < list.size(); i++)
    {
        Integer x = list.get(i);
        if (x % 2 == 0)    // If x is even
            even.add(x);   // Add x to the collection of even numbers  
        else
            odd.add(x);    // Add x to the collection of odd numbers
    }
}

„Beispiel 5:“

Listen zusammenführen
public static void main(String[] args) throws IOException
{
    ArrayList<Integer> list1 = new ArrayList<Integer>();   // Create a list  
    Collections.addAll(list1, 1, 5, 6, 11, 3, 15, 7, 8);   // Fill the list

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

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

    result.addAll(list1);   // Add all values from each list to the new list
    result.addAll(list2);

    for (Integer x : result)   // A fast way to loop over all elements, only for collections
    {
        System.out.println(x);
    }
}

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

„Ja, das wird er.“

Kommentare (7)
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION
Hariboto Level 7, Dresden, Germany
24 Februar 2023
Hmm... hatten wir Collections schon behandelt? --> Collections.addAll(liste1, 1, 5, 6, 11, 3, 15, 7, 8);
Pablo Rodriguez Level 8, Germany, Germany
14 Dezember 2021
Im if-Code (Zeile 12-16) fehlen die geschweiften Klammern (Your-Code-Example). Wenn ich die Message (nicht darüber nachdenken) falsch interpretiert haben, dann bitte meine Nachricht ignorieren :D
Julian F.D.Martins Level 12, Wassenberg, Germany Expert
14 Dezember 2021
Da es einzeilig im IF-Statement weitergeht muss man die geschweiften Klammern nicht benutzen, sobald es aber länger wird, dann werden die auch zur Pflicht wenn ich mich nicht irre, empfiehlt sich dementsprechend die geschweiften Klammern immer zu nutzen :)
Tim Puppe Level 13
20 November 2021
for (Integer x : ergebnis) // Eine schnelle Möglichkeit, alle Elemente zu durchlaufen, nur für Collections { System.out.println(x); } } kann mir jemand den Doppelpunkt erklären?
MaisNon Level 18, Spain
11 Juni 2022
Das ist eine for-each-Schleife. Und heißt so viel wie für alle Zahlen in dem Array mache ...
Jounes Level 9, Germany, Germany
24 September 2021
Hallo, mir ist nicht klar geworden was jetzt "Generic" sind. Kann mir das jemand nochmal kurz erläutern?
FrogTea Level 23
29 September 2021

ArrayList<Integer> ergebnis
Statt den Dtyp Integer in den diamant-klammern könnten wir auch bei Bedarf auch <String> oder <Character> oder <Object> etc. unserer List-Variablen zuweisen. Oder auch <T>, stellvertrettend für irgendein Typ, für den wir uns aber noch nicht entschieden haben. Das mach die Arbeit mit dieser Variablen (oder auch einer Methode) flexibler, da ich nicht sofort ein Datentyp festlegen muss. So verstehe ich das.