9. ArrayList
Im letzten Kapitel hast du gelernt, wie man mit Hilfe eines Arrays Daten speichern kann.Jetzt lernst du eine andere Methode, Daten zu speichern. Und zwar mit einer ArrayList. Wie du am Namen vielleicht bereits erkennen kannst, ist eine ArrayList und ein Array eng miteinander verwandt.
Ein grosser Unterschied zum gewöhnlichen Array ist, dass du beim Erstellen einer ArrayList nicht angeben musst, wie gross sie sein soll. Ihre Grösse passt sich also immer wieder an.
9.1 ArrayList erstellen
Wie beim Array hast du auch beim Erstellen einer ArrayList die Möglichkeit, nur den Datentyp der Werte anzugeben, ohne eine Zuweisung von Werten zu machen.Schauen wir uns mal an, wie man eine ArrayList des Datentyps String erstellt, ohne gleichzeitig Werte zu speichern:
ArrayList<String> instrumente = new ArrayList<>();
Zuallerst gibst du an, dass dies eine ArrayList ist. Danach folgt der Datentyp der Werte in deiner ArrayList. Diesen musst du in den eckigen Klammern angeben. Nachdem du den Datentyp festgelegt hast, gibst du deiner ArrayList einen Namen. In unserem Fall ist das "instrumente". Das was nach dem Gleichheitszeichen folgt, sagt dem Computer, dass "instrumente" eine ArrayList ist.
Gibst du diesen Code ein, wird jedoch eine Fehlermeldung erscheinen. Diese tritt ein, weil du noch die ArrayList importieren musst. Dazu musst du lediglich auf die Glühbirne, welche bei NetBeans auf der linken Seite erscheinen wird, klicken und "Add import for java.util.ArrayList" auswählen.
9.2 Werte hinzufügen
Wir haben nun unsere ArrayList "instrumente" erstellt und möchten ihr Werte zuweisen:instrumente.add("Klavier");
instrumente.add("Flöte");
instrumente.add("Kontrabass");
Für die Zuweisung von Werten stellt dir die ArrayList die add-Methode zur Verfügung. Du musst vorher nur den Namen der ArrayList angeben und danach den Wert in Gänsefüsschen eingeben, denn wie du weisst, stehen String-Werte immer in diesen Gänsefüsschen.
9.3 Werte entfernen
Nachfolgend siehst du, wie man Werte aus einer ArrayList entfernen kann:instrumente.remove("Kontrabass");
Wie auch beim Hinzufügen von Werten stellt die die ArrayList auch für das Entfernen von Werten eine Methode zur Verfügung, die remove-Methode. Sie funktioniert genau wie die add-Methode. In den Gänsefüsschen gibst du an, welchen Wert du aus der ArrayList herausnehmen möchtest.
9.4 Werte ausgeben
Wie auch bei den Arrays, kannst du auch bei der ArrayList all die Werte, die sie enthält, mit Hilfe einer for-Schleife ausgeben:for (int i = 0; i < instrumente.size(); i++) {
System.out.println(instrumente.get(i));
}
In der for-Schleife erstellst du wie gewöhnlich eine Variable und gibst ihr den Wert 0. Danach folgt der boolescher Ausdruck. In unserem Fall bedeutet dieser, dass die Anweisung, welche sich zwischen den zwei geschweiften Klammern befindet, so lange ausgeführt wird bis der Wert der Variable i gleich gross ist, wie die Länge unserer ArrayList.
Mit Hilfe von System.out.println gibt man dann den Wert des aktuellen Indexes in der ArrayList aus. Die ArrayList stellt dir die get-Methode zur Verfügung, um auf einen Wert zuzugreifen. Zwischen den Klammern kommt der Index rein.
9.5 Weitere Methoden
Du hast nun die Methoden add und remove kennengelernt und weisst nun, wann du sie verwenden kannst. Das coole an ihnen ist, dass du sie nicht programmieren musstest. Sie werden dir bereits von der ArrayList zur Verfügung gestellt und sie sind nicht die einzigen.Wenn du zum Beispiel nur den Wert in einer ArrayList kennst und den Index davon herausfinden möchtest, kannst du ganz einfach die indexOf-Methode verwenden:
instrumente.indexOf("Flöte");
Weitere nützliche Methoden findest du hier.