Wrapper-Typen in Java
Erstelle eine ArrayList<Integer> namens nums, rufe nums.add(9); dann nums.add(4); auf und drucke nums.get(0). Kompiliere Crate.java und führe java Crate aus. Der Bildschirm soll eine Zeile zeigen: 9. In den spitzen Klammern steht Integer, nicht int. Ganze Zahlen über einen Wrapper-Typ in einer Liste zu speichern — damit die Sammlung Objekte halten kann — ist, was diese Seite lehrt.
Warum die Liste Integer braucht
Auf der Iterating-Seite hielt die Liste String-Wörter. Eine ArrayList speichert Objekte. Der primitive Typ int ist kein Objekt. Der Wrapper-Typ Integer ist die Objektform einer ganzen Zahl. Innerhalb der spitzen Klammern schreibst du Integer. Wenn du add(9) aufrufst, kann Java das primitive 9 für dich auf dieser Seite in ein Integer boxen. Dieses stille Boxing reicht für die Lehrdatei.
Öffne Crate.java. Behalte den öffentlichen Klassennamen Crate, damit er zum Dateinamen passt. Lösche übrig gebliebenes for (String t : tags), oak- und pine-Adds, Lane-Demos und jedes übrig gebliebene HashSet oder Map. Lösche auch jedes Scanner oder nextLine. Das Programm darf nicht auf Tippen warten.
Nah oben, über public class Crate, schreibe:
import java.util.ArrayList;
Innerhalb von main erzeuge die Liste:
ArrayList<Integer> nums = new ArrayList<Integer>();
Schreibe nicht ArrayList<int> — javac lehnt diese Form ab. Behalte Integer auf beiden Seiten der Erzeugzeile für diese Seite. Füge dann zwei ganze Zahlen ohne Anführungszeichen hinzu:
nums.add(9);
nums.add(4);
Schreibe dann:
System.out.println(nums.get(0));
Slot null hält 9. Speichere, bevor du kompilierst.
import java.util.ArrayList;
public class Crate {
public static void main(String[] args) {
ArrayList<Integer> nums = new ArrayList<Integer>();
nums.add(9);
nums.add(4);
System.out.println(nums.get(0));
}
}
Aus dem Ordner, der Crate.java hält, führe javac Crate.java aus. Wenn Klammern, geschweifte Klammern, spitze Klammern und Semikolons passen, schreibt javac keine eigene Zeile. Dann führe java Crate aus — nicht java Crate.java und nicht java Integer. Lass die Endung .java vom Laufbefehl weg.
Das Programm soll eine Zeile drucken und stoppen: 9. Es soll dich nicht tippen lassen. Wenn das Terminal auf Tastatureingabe wartet, steckt noch ein nextLine-Aufruf aus einer älteren Übung in einer Datei. Lösche diesen Aufruf und behalte die ArrayList<Integer>-Erzeugung, die zwei add-Zeilen und System.out.println(nums.get(0));.
Gehe den Lauf einmal durch. Java startet bei Crate.main. Die Liste wächst mit zwei geboxten ganzen Zahlen. Der Aufruf get(0) gibt das erste Integer zurück. Die Druckzeile schreibt 9. Der Bildschirm zeigt 9. Nichts anderes soll drucken. Wenn du oak oder pine siehst, läuft noch eine Lane-Iterating-Demo — wechsle zu java Crate. Wenn du 4 siehst, hast du versehentlich get(1) gedruckt; behalte get(0) für die Lehrdatei. Wenn du [9, 4] siehst, hast du das ganze Listenobjekt statt Slot null gedruckt — behalte println(nums.get(0)) für den Quiz-Pfad.
Wenn javac ArrayList<int> ablehnt, ändere die Klammern zu Integer. Dieser Fehler ist der Kern der Typ-Regel dieser Lektion; korrigiere die Klammern und kompiliere erneut. Wenn du nums.add("9"); mit Anführungszeichen schreibst, fügst du einen String hinzu, und javac lehnt das für eine ArrayList<Integer> ab. Behalte nackte Ziffern für diese Seite. Fehlt der Import, findet javac ArrayList nicht — setze import java.util.ArrayList; über die Klasse. Die Schreibweise Integer mit großem I zählt; integer in den Klammern passt nicht zum Wrapper-Typ, den Java hier erwartet.
Unbox in ein plain int
Eine zweite Demo liest den ersten Wert in eine primitive int-Variable und druckt diese Variable. Java unboxt das Integer für dich bei dieser Zuweisung.
import java.util.ArrayList;
public class Crate {
public static void main(String[] args) {
ArrayList<Integer> nums = new ArrayList<Integer>();
nums.add(9);
nums.add(4);
int n = nums.get(0);
System.out.println(n);
}
}
Kompiliere und führe auf dieselbe Weise aus. Der Bildschirm zeigt weiterhin 9. Die Zeile int n = nums.get(0); nimmt den Wrapper-Wert als plain int heraus. Du brauchst auf diesem Anfängerpfad kein intValue() aufzurufen. Behalte die erste Lehrdatei als direkte println(nums.get(0))-Form. Nutze die Unbox-Datei, um zu sehen, dass eine primitive Variable halten kann, was die Liste als Integer speicherte. Behalte den Namen n genau wie gezeigt, damit die Druckzeile kurz bleibt. Mische kein for-each über String-Tags in diese zweite Datei — bleibe bei der Zahlenliste und der einen int-Zuweisung.
Seite an Seite
Eine kurze Tabelle hält die Typ-Regel klar.
📊 int vs Integer for lists
| Piece | On this page |
|---|---|
| list type | ArrayList<Integer> |
| illegal | ArrayList<int> — not allowed |
| add | nums.add(9); — boxes to Integer |
| read | nums.get(0) prints 9; may unbox to int n |
Die Tabelle ist nur eine Erinnerung. Die getippten Stücke, die du behältst, sind der Import, ArrayList<Integer>, die zwei Adds und get(0). |
Verglichen mit String-Listen und mit Primitiven allein
Auf der Iterating-Seite hielt ArrayList<String> Wörter. Das funktioniert weiter. Diese Seite wechselt den Elementtyp zu Integer, damit ganze Zahlen in einer Liste sitzen können. Ein übrig gebliebenes Lane-for-each, das oak und pine druckt, ist eine andere Lektion. Für diese Seite behalte Crate und drucke 9 aus get(0).
Ein alleiniges int x = 9; funktioniert weiterhin ohne jede Liste. Wrapper zählen, wenn die Collections-API einen Objekttyp in den spitzen Klammern verlangt. Andere Wrapper folgen später derselben Idee — Double neben double, Boolean neben boolean — aber diese Seite behält Integer und int, damit der Bildschirm eine klare Zahl bleibt. Du musst heute nicht jeden Wrapper-Namen auswendig lernen; lerne das Muster einmal mit Integer neben int und der illegalen Form ArrayList<int>.
Wenn alte Lane.java-Dateien noch in der Nähe liegen, lass sie oder lösche sie nur, wenn sie verwirren, welche Klasse du startest. Führe java Crate aus, nachdem du die Wrapper-Liste dieser Lektion kompiliert hast. Der Collections-Pfad endet hier mit diesem klaren 9 auf dem Bildschirm, bevor der Kurs zu Fehlern und Dateien wechselt.
Was für Exceptions bleibt
Diese Seite schließt den Wrapper-Bedarf des Collections-Moduls für ganze Zahlen in einer Liste. Das nächste Modul öffnet Fehler mit Exceptions. Bleibe hier auf dieser Seite bei ArrayList<Integer> und get(0). Erfinde auf dieser Seite kein try oder catch als Pflicht.
Vor den Exceptions
Du kannst java.util.ArrayList importieren, ArrayList<Integer> nums erzeugen, 9 und 4 hinzufügen und nums.get(0) drucken, um 9 zu sehen. Du kannst auch in int n unboxen. Kompiliere Crate.java und führe java Crate aus. Der Wrapper-Typ ließ die Liste ganze Zahlen halten. Die nächste Seite sind Exceptions, wo ein Programm Probleme signalisiert und behandelt.
Behalte Integer in den spitzen Klammern. Behalte nackte Zahlen-Adds ohne Anführungszeichen. Behalte get(0) für den Lehrbildschirm 9. Diese drei Gewohnheiten sind der Checkpoint, bevor du weitergehst. Wenn der Bildschirm nach einer sauberen Kompilierung von Crate.java 9 aus der Integer-Liste zeigt, haben Wrapper für diese Lektion ihre Arbeit getan 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