(letzte Änderung an dieser Seite: 16.02.2013)
(letzte Synchronisation der PDF-Präsentation: 02.08.2017)
Falls keine PDF-Präsentation zu sehen ist, klicken Sie zum Download hier: Direktdownload PDF-Präsentation
Listen sind ein Teil des Collections-Frameworks. ArrayList ist eine Bibliotheksklasse aus dem Paket java.util.* und muss importiert werden.
ArrayList und LinkedList sind im Wesentlichen gleich; die ArrayList ist schneller bei Zugriff auf einzelne Elemente, die LinkedList ist schneller bei Operationen wie löschen, hinzufügen.
Der wesentliche Unterschied zwischen Arrays und der ArrayList: Die ArrayList ist dynamisch, d.h. in der Größe flexibel. In gewissen Kontexten sind Arrays perfomarmenter, im Schulunterricht können wir jedoch immer ArrayList benutzen.
In Spitzklammern wird der Datentyp, den die Liste enthält, angegeben:
Java-CodeArrayList<String> eineListe = new ArrayList<String>();
Die ArrayList kann keine primitiven Datentypen (int ...) verwalten, sondern nur Objekte. Möchte man primitive Datentypen in einer ArrayList speichern, muss man Wrapperklassen benutzen:
Java-CodeArrayList<Integer> eineListe = new ArrayList<Integer>();
Wir gehen von dieser Liste aus:
Java-CodeArrayList<String> liste = new ArrayList<String>();
Element ausgeben |
liste.get(13) |
Element einfügen (ohne Positionsangabe) |
liste.add("Heinrich") |
Element einfügen (mit Positionsangabe) |
liste.add(0, "Heinrich") |
Element ändern |
liste.set(0, "Heini") |
Element entfernen |
liste.remove("Heinrich") liste.remove(1) // Index |
Größe zurückgeben |
liste.size(); |
Sie können jetzt unten Aufgabe 1 ("Java_30-ArrayList-1: Lieblingsfächer") bearbeiten.
Wieder gehen wir von dieser Liste aus:
Java-CodeArrayList<String> liste = new ArrayList<String>();
Prüfen, ob Objekt enthalten ist |
liste.contains("Heinri") |
Welchen Index hat ein Objekt? |
liste.indexOf("Heinri") |
Liste löschen |
liste.clear(); |
Wenden Sie diese Methoden an in Aufgabe 2 unten ("Java_30-ArrayList-2: Lottozahlen")
Grundsätzlich gibt es drei Möglichkeiten, die Inhalte einer ArrayList auszugeben:
Mit toString() wird der Inhalt der ArrayList in einen einzigen String verpackt. Damit kann man natürlich nicht arbeiten, aber ganz hilfreich, um mal rasch in eine ArrayList reinzuschauen:
Java-CodeArrayList<Integer> liste = new ArrayList<Integer>(); liste.add(12); liste.add(1000); System.out.println(liste.toString());
Wie auch beim Array funktioniert bei der ArrayList eine foreach-Schleife:
Java-CodeArrayList<Integer> liste = new ArrayList<Integer>(); liste.add(12); liste.add(1000); for(int ausgabe : liste) { System.out.println(ausgabe); }
Der ListIterator durchläuft die ArrayList und bietet zusätzlich einige Methoden zur Verarbeitung:
Java-CodeArrayList<Integer> liste = new ArrayList<Integer>(); liste.add(12); liste.add(1000); ListIterator<Integer> li = liste.listIterator(); while(li.hasNext()) { System.out.println(li.next()); }
next()
springt zum nächsten Element der Liste. Der Index des aktuellen Elements wird mit li.nextIndex()
abgefragt.
Üben Sie die Listenausgabe mit Aufgabe 3 unten ("Java_30-ArrayList-3: Listen ausgeben").