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