ArrayList in Java
Erstelle eine ArrayList<String> namens tags, rufe tags.add("oak"); und danach tags.add("pine"); auf und drucke die Liste mit System.out.println(tags);. Kompiliere Shelf.java und starte java Shelf. Der Bildschirm soll eine Zeile zeigen: [oak, pine]. Die eckigen Klammern und das Komma gehören zur Druckdarstellung der Liste. Du vergrößerst die Liste mit add. Diese wachsende Liste nach dem Import ist der Stoff dieser Seite.
Eine Liste, die wachsen kann
Auf der Arrays-Seite hielt ein String[] eine feste Zahl von Plätzen in geschweiften Klammern. Auf dieses Array konntest du kein add aufrufen. Eine ArrayList ist ein anderer Behälter. Du erzeugst sie leer und schiebst Werte mit add hinein. Jedes add vergrößert die Liste um eins. Die Druckzeile zeigt alle aktuell gespeicherten Werte in eckigen Klammern, getrennt durch Kommas und Leerzeichen.
Öffne Shelf.java. Behalte den public-Klassennamen Shelf, damit er zum Dateinamen passt. Lösche Reste von import kit.Bell;, Bell.ring();, package kit; und jeden Porch- oder Lobby-Aufruf der letzten Seiten. Die gehören zur Classes-Modul-Geschichte. Diese Seite öffnet Collections. Lösche auch jeden Scanner, nextLine oder Tastaturleseaufruf. Das Programm darf nicht auf Eingabe warten.
Schreibe nahe am Anfang von Shelf.java, oberhalb von public class Shelf:
import java.util.ArrayList;
Dieser Import bringt den Typ ArrayList in Kurznamensreichweite, so wie import kit.Bell; auf der Import-Seite Bell brachte. Ohne diese Zeile sieht javac den Kurznamen ArrayList auf dieser Seite nicht. Schreibe das Paket java.util und die Klasse ArrayList genau. Erfinde hier kein Pflicht-import java.util.*; — ein genaues Import reicht.
Erzeuge die Liste in main:
ArrayList<String> tags = new ArrayList<String>();
Die spitzen Klammern halten String, weil diese Lektion Wörter speichert. Den Namen tags tippst du genau wie in der behaltenen Datei. Der Aufruf new ArrayList<String>() baut ein leeres Listenobjekt. In diesem Moment hält die Liste null Werte. Ein Druck jetzt würde [] zeigen, aber die behaltene Datei fügt vor dem Druck Wörter hinzu.
Erst oak, dann pine, dann drucken
Rufe tags.add("oak"); in einer eigenen Zeile auf. Dann rufe tags.add("pine"); in der nächsten Zeile auf. Jeder Aufruf speichert ein Wort in Anführungszeichen. Die Reihenfolge zählt für den Bildschirm: zuerst oak, dann pine. Vertausche sie in der behaltenen Datei nicht. Füge auf der Lehrdatei dieser Seite kein drittes Wort hinzu — zwei Adds reichen, um Wachstum und Druckform zu sehen.
Schreibe danach:
System.out.println(tags);
Übergib den Listennamen selbst. Setze keine Anführungszeichen um tags. Schreibe nicht System.out.println("oak"); von Hand als Lehrpfad — der Punkt ist, dass das Listenobjekt beide Wörter trägt und zusammen druckt. Speichere die Datei vor dem Kompilieren.
import java.util.ArrayList;
public class Shelf {
public static void main(String[] args) {
ArrayList<String> tags = new ArrayList<String>();
tags.add("oak");
tags.add("pine");
System.out.println(tags);
}
}
Aus dem Ordner mit Shelf.java starte javac Shelf.java. Wenn Klammern, geschweifte Klammern, spitze Klammern und Semikolons passen, schreibt javac keine eigene Zeile. Dann starte java Shelf — nicht java Shelf.java und nicht java ArrayList. Lass die Endung .java beim Startbefehl weg. Starte die Klasse mit main.
Das Programm soll eine Zeile drucken und stoppen: [oak, pine]. Es soll nicht auf Eingabe warten. Wenn das Terminal auf Tastatur wartet, steckt noch ein nextLine-Aufruf aus einer älteren Übung in einer Datei. Lösche ihn und behalte die ArrayList-Erzeugung, die zwei add-Zeilen und System.out.println(tags);.
Geh den Lauf einmal durch. Java startet bei Shelf.main. Der Import hat bereits benannt, welche ArrayList du meinst. Die new-Zeile baut eine leere Liste. Das erste add speichert oak. Das zweite add speichert pine. Die Druckzeile lässt die Liste ihren Inhalt zeigen. Der Bildschirm zeigt [oak, pine]. Nichts anderes soll drucken. Wenn du ding, 9 oder ok siehst, läuft noch ein älteres Porch-, Lobby-, Pier- oder Yard-Programm. Wechsle zu java Shelf.
Wenn javac sagt, es finde ArrayList nicht, fehlt die Import-Zeile, ist falsch geschrieben oder steht nach public class Shelf. Verschiebe import java.util.ArrayList; über die Klassenzeile. Wenn du tags.add(oak); ohne Anführungszeichen schreibst, behandelt javac oak als fehlenden Namen. Behalte die Anführungszeichen um jedes Wort. Wenn du String[] tags = new ArrayList<String>(); schreibst, passen die Arten nicht und javac lehnt ab — behalte auf dieser Seite ArrayList<String> auf beiden Seiten der Erzeugungszeile.
Festes Array neben der wachsenden Liste
Ein kurzer Kontrast hält die alte Arrays-Seite im Blick, ohne sie in den Lehrlauf zu mischen. Ein festes String[] funktioniert weiter. Es wächst nicht mit add.
public class Shelf {
public static void main(String[] args) {
String[] trees = {"oak", "pine"};
System.out.println(trees[0]);
}
}
Kompiliere und starte diesen Kontrast nur als Erinnerung an die feste Form. Der Bildschirm zeigt oak — einen Platz — nicht [oak, pine]. Es gibt keinen add-Aufruf. Für ein drittes Wort in einem festen Array brauchst du ein neues Array mit drei Plätzen. Die ArrayList-Lehrdatei ist die mit import java.util.ArrayList;, zwei add-Aufrufen und System.out.println(tags);. Nutze die Festarray-Datei nur als Erinnerung, nicht als Quizpfad. Mische kein trees.add("elm") in diesen Kontrast — String[] hat kein add, und javac würde ablehnen.
Nebeneinander
Eine kurze Tabelle hält den Unterschied klar.
📊 ArrayList vs String array
| Piece | On this page |
|---|---|
| create | ArrayList<String> tags = new ArrayList<String>(); |
| grow | tags.add("oak"); then tags.add("pine"); |
| print list | System.out.println(tags); → [oak, pine] |
| fixed array | String[] trees = {"oak", "pine"}; — no add |
Die Tabelle ist nur eine Erinnerung. Die getippten Teile für die Lehrdatei sind der Import, die ArrayList-Erzeugung, die zwei add-Aufrufe und der Druck von tags. |
Verglichen mit import und mit Arrays
Auf der Import-Seite rief Porch nach import kit.Bell; die Methode Bell.ring(); auf. Das bleibt als Geschichte gültig. Diese Seite wechselt die Rolle zu Shelf und den Import zu java.util.ArrayList. Ein Rest von Bell.ring(); ist eine andere Lektion. Für diese Seite behalte ArrayList<String> tags, zwei add-Zeilen und den Listendruck.
Auf der Arrays-Seite füllten geschweifte Klammern ein festes String[]. Das funktioniert weiter bei bekannter Größe. Diese Lektion wählt ArrayList, damit du Wachstum mit add und einen Druck der ganzen Liste siehst. Mische auf dieser Seite nicht plants[0] und tags.add("oak") in derselben Shelf-Demo. Ein klarer Pfad reicht: Import, erzeugen, add, add, drucken.
Wenn du später get, size oder remove brauchst, deckt die folgende Seite — List-Methoden — diese Aufrufe ab. Bleib hier bei add und dem Druck der ganzen Liste. Erfinde auf dieser Seite keine Pflichtschleife über die Liste; der Druck des Listenobjekts reicht, um beide Wörter zu sehen.
Was für List-Methoden bleibt
Diese Seite öffnet Collections mit einer Liste, die wachsen kann. Die nächste Seite übt gängige Listenaufrufe wie das Lesen eines Platzes oder die Frage nach der Anzahl. Bleib hier bei add und dem Volldruck. Erfinde hier kein Pflicht-tags.get(0), außer du kennst es schon; das Ziel ist die wachsende Liste und der Bildschirm [oak, pine].
Wenn alte Porch.java- oder Lobby.java-Dateien noch daneben liegen, lass sie oder lösche sie nur, wenn sie den Startbefehl verwirren. Starte java Shelf, nachdem du die ArrayList-Datei dieser Lektion kompiliert hast.
Vor den List-Methoden
Du kannst java.util.ArrayList importieren, ArrayList<String> tags erzeugen, tags.add("oak"); und tags.add("pine"); aufrufen und dann tags drucken. Kompiliere Shelf.java und starte java Shelf. Der Bildschirm zeigt [oak, pine]. Die Liste wuchs mit add. Die nächste Seite sind List-Methoden, wo du einen Wert erreichst oder die Liste nach ihrer Länge fragst.
Behalte den Import oberhalb der Klasse. Behalte beide add-Aufrufe vor dem Druck. Behalte für diese Lektion java Shelf. Diese drei Gewohnheiten sind der Checkpoint dieser Seite vor dem Weitergehen. Wenn der Bildschirm nach den zwei Adds [oak, pine] zeigt, hat die ArrayList ihren Job für diese Lektion erledigt und du bist bereit für das nächste Thema.
🧠 Testen Sie Ihr Wissen
Testen Sie Ihr Wissen
Fordern Sie sich mit diesem interaktiven Quiz heraus und sehen Sie, wie gut Sie das Thema verstehen
📝 Anweisungen
- Lesen Sie jede Frage sorgfältig
- Wählen Sie die beste Antwort für jede Frage
- Sie können das Quiz so oft wiederholen, wie Sie möchten
- Ihr Fortschritt wird oben angezeigt