List-Methoden in Java
Halte eine ArrayList<String> namens tags, füge zuerst oak und dann pine hinzu und lies den ersten Wert mit tags.get(0). Kompiliere Rack.java und starte java Rack. Der Bildschirm soll eine Zeile zeigen: oak. Der Aufruf get(0) wählt Slot null. Spätere Demos auf dieser Seite zeigen size() mit Druck 2 und remove(0) mit Rest [pine]. Einen Slot lesen, zählen und einen Slot streichen — das lehrt diese Seite.
Einen Slot mit get lesen
Auf der ArrayList-Seite hast du die ganze Liste gedruckt und [oak, pine] gesehen. Dieser Vollprint funktioniert weiter. Diese Seite greift jeweils einen Wert. Der Aufruf tags.get(0) liefert das Wort in Slot null. Slotnummern beginnen bei null — dieselbe Idee wie plants[0] auf der Arrays-Seite, aber der Aufruf nutzt Klammern: get(0), nicht nur eckige Klammern nach dem Namen.
Öffne Rack.java. Behalte den public-Klassennamen Rack, damit er zum Dateinamen passt. Lösche übrig gebliebenes System.out.println(tags); als einzige Lehrzeile, falls du Shelf wörtlich kopiert hast — die erste behaltene Datei dieser Seite druckt stattdessen tags.get(0). Lösche auch jeden Scanner, nextLine, Bell.ring() oder Package-Demo. Das Programm darf nicht auf Tippen warten.
Nahe am Anfang, oberhalb von public class Rack, behalte:
import java.util.ArrayList;
Erzeuge in main die Liste und füge dieselben zwei Wörter hinzu:
ArrayList<String> tags = new ArrayList<String>();
tags.add("oak");
tags.add("pine");
Schreibe danach:
System.out.println(tags.get(0));
Übergib 0 in den Klammern. Schreibe nicht tags[0]. Drucke für diese erste Demo nicht die ganze Liste als Pflichtpfad. Speichere vor dem Kompilieren.
import java.util.ArrayList;
public class Rack {
public static void main(String[] args) {
ArrayList<String> tags = new ArrayList<String>();
tags.add("oak");
tags.add("pine");
System.out.println(tags.get(0));
}
}
Aus dem Ordner mit Rack.java starte javac Rack.java. Wenn Klammern, geschweifte Klammern, spitze Klammern und Semikolons passen, schreibt javac keine eigene Zeile. Dann starte java Rack — nicht java Rack.java und nicht java ArrayList. Lass die Endung .java beim Startbefehl weg.
Das Programm soll eine Zeile drucken und stoppen: oak. Es fragt dich nicht nach Eingabe. Wenn das Terminal auf Tastatur wartet, steckt noch ein nextLine-Aufruf aus einer älteren Übung in einer Datei. Lösche diesen Aufruf und behalte Erzeugen, die beiden add-Zeilen und System.out.println(tags.get(0));.
Geh den Lauf einmal durch. Java startet bei Rack.main. Die Liste wächst mit zwei Adds. get(0) liefert oak. Die Druckzeile schreibt dieses Wort. Der Bildschirm zeigt oak. Nichts anderes soll drucken. Siehst du [oak, pine], druckst du noch die ganze Liste. Stelle die Druckzeile auf tags.get(0). Siehst du ding oder 9, läuft noch ein altes Porch- oder Pier-Programm — nutze java Rack.
Behältst du versehentlich get(1) als Druck, zeigt der Bildschirm pine. Das ist gültiges Java, aber nicht die Datei, die diese Seite für die erste Demo behält. Behalte get(0), damit der Bildschirm oak ist. Rufst du get(2) nach nur zwei Adds auf, wirft das Programm zur Laufzeit einen Fehler, weil Slot zwei nie gefüllt wurde. Bleib hier bei get(0).
Mit size zählen
Eine zweite Demo fragt, wie viele Werte in der Liste sitzen. Nach denselben zwei Adds rufe tags.size() auf und drucke diese Zahl.
import java.util.ArrayList;
public class Rack {
public static void main(String[] args) {
ArrayList<String> tags = new ArrayList<String>();
tags.add("oak");
tags.add("pine");
System.out.println(tags.size());
}
}
Kompiliere und starte genauso: javac Rack.java, dann java Rack. Der Bildschirm zeigt 2. Die Methode size() liefert eine ganze Zahl. Sie druckt die Wörter selbst nicht. Zeigt der Bildschirm [oak, pine], hast du die Liste statt size() gedruckt. Zeigt er oak, hast du noch den get(0)-Druck der ersten Demo. Für die zweite Datei behalte nach den zwei Adds nur System.out.println(tags.size());.
Erfinde auf dieser Seite kein tags.length für eine ArrayList. Feste Arrays nutzen .length. Listen nutzen .size(). Diese Namen zu mischen ist ein häufiger Rest von der Arrays-Seite. Behalte size() für die Liste.
Einen Slot mit remove streichen
Eine dritte Demo entfernt Slot null und druckt danach die Restliste.
import java.util.ArrayList;
public class Rack {
public static void main(String[] args) {
ArrayList<String> tags = new ArrayList<String>();
tags.add("oak");
tags.add("pine");
tags.remove(0);
System.out.println(tags);
}
}
Kompiliere und starte erneut. Nach remove(0) ist oak weg. Pine rutscht in Slot null. Der Listendruck zeigt [pine]. Der Bildschirm ist nicht mehr [oak, pine]. Druckst du nach dem Remove tags.get(0) statt der ganzen Liste, siehst du allein pine — das ist als Check in Ordnung, aber die behaltene dritte Datei druckt die Liste, damit du die Klammern mit einem verbliebenen Wort siehst.
Rufe remove mit einer Slotnummer auf, die existiert. Nach zwei Adds sind remove(0) und remove(1) vor jeder Entfernung beide legal. Diese Seite behält remove(0), damit oak zuerst geht. Rufe remove(2) nicht auf einer Zwei-Wort-Liste auf — dieser Slot war nie da.
Verglichen mit ArrayList erzeugen und add
Auf der ArrayList-Seite stoppte die Lehrdatei bei println(tags) und dem Bildschirm [oak, pine]. Diese Seite behält dieselbe Create-und-Add-Gewohnheit und ergänzt dann get, size und remove. Eine übrig gebliebene Shelf-Datei, die nur die ganze Liste druckt, ist Geschichte — nicht der Quizpfad hier. Für diese Seite starte java Rack mit der Demo, die du gerade studierst: zuerst get(0), dann size(), dann remove plus Druck.
Du brauchst keinen neuen Import für diese Aufrufe. Sie gehören zu ArrayList, sobald der Typ importiert ist. Behalte import java.util.ArrayList; oben in jeder Rack-Datei auf dieser Seite.
Wenn du später Schlüssel auf Werte abbildest, beginnt eine folgende Seite — HashMap — diese Geschichte. Bleib hier bei Listenaufrufen. Erfinde kein put und keine Map-Syntax als Pflicht auf dieser Seite.
Was für HashMap bleibt
Diese Seite schließt das grundlegende Listen-Werkzeug ab: einen Slot lesen, Werte zählen, einen Slot streichen. Die nächste Seite öffnet eine andere Sammlung, in der jeder Eintrag Schlüssel und Wert hat. Bleib hier bei get, size und remove auf ArrayList. Schreibe keine HashMap-Zeilen in die Rack-Demos.
Wenn alte Shelf.java-Dateien noch daneben liegen, lass sie oder lösche sie nur, wenn sie verwirren, welche Klasse du startest. Starte java Rack, nachdem du die Datei für die gemeinte Demo kompiliert hast.
Vor HashMap
Du kannst ArrayList<String> tags behalten, oak und pine addieren, tags.get(0) drucken und oak sehen, tags.size() drucken und 2 sehen, und nach tags.remove(0) die Liste drucken und [pine] sehen. Kompiliere Rack.java und starte java Rack für jede behaltene Demo. Die Listenmethoden haben ihre Arbeit getan. Die nächste Seite ist HashMap, wo ein Schlüssel auf einen Wert in einem Objekt zeigt.
Behalte den Import. Behalte die zwei Adds vor get, size oder remove. Behalte Slot null als Lehrindex auf dieser Seite. Diese Gewohnheiten sind der Checkpoint vor dem Weitergehen. Wenn get(0) oak und size() 2 zeigt, bist du 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