Arrays mit fester Länge
- Anlegen:
int[] temp = new int[8];— acht Felder vom Typint, alle mit0gefüllt. - Mit Werten:
int[] temp = {12, 15, 9, 7, 11, 14, 18, 16};— die Länge ergibt sich aus der Anzahl. - Index:zählt ab 0:
temp[0]ist das erste Feld,temp[7]das letzte. - Länge:
temp.length(ohne Klammern) — sie steht beim Anlegen fest und ändert sich nie. - Zu weit:
temp[8]übersetzt fehlerfrei, stürzt aber beim Ausführen mitArrayIndexOutOfBoundsExceptionab. - Durchlauf:
for (int i = 0; i < temp.length; i++)—iist der Index,temp[i]der Wert.
Wähle im Balken einen Schleifenkopf. Markiere alle Felder, auf die temp[i] zugreift — per Klick oder mit den Pfeiltasten und Enter. Dann „Prüfen“. „Ablauf zeigen“ spielt die Schleife Schritt für Schritt ab.
0 von 5 Schleifen richtig markiert
Halte fest: Die Indizes eines Arrays mit 8 Feldern laufen von 0 bis 7 = temp.length - 1. Der sichere Schleifenkopf nutzt i < temp.length; mit <= greift die Schleife auf ein Feld zu, das es nicht gibt.
Array: int[] temp = new int[8]; legt acht Felder fester Länge an (alle 0); temp.length ist die Länge.
Index: Er läuft von 0 bis temp.length - 1; ein zu großer Index führt erst beim Ausführen zu ArrayIndexOutOfBoundsException.
Durchlauf: for (int i = 0; i < temp.length; i++), nicht mit <=.
Die ArrayList wächst mit
- Import:
import java.util.ArrayList;ganz oben in der Datei. - Anlegen:
ArrayList<String> einkauf = new ArrayList<>();— zu Beginn leer, der Typ steht in spitzen Klammern. - Methoden:
add("Eier")hängt an,get(i)liest,set(i, "Käse")ersetzt,remove(i)löscht,size()zählt. - Zahlen:in spitzen Klammern nur Klassen:
ArrayList<Integer>stattint,Doublestattdouble. - for-each:
for (String s : einkauf)— „für jedessineinkauf“, ohne Index.
Herleitung:
einkauf = []ArrayList<String> einkauf = new ArrayList<>();einkauf.add("Milch"); statt einkauf.append("Milch")append wird add; so kommen auch „Brot“ und „Eier“ hinzu.einkauf.get(0) und einkauf.size()einkauf[0] und len(einkauf) — liefert „Milch“ und 3.ArrayList: import java.util.ArrayList;, ArrayList<String> einkauf = new ArrayList<>(); — wächst mit, zu Beginn leer.
Methoden: add hängt an, get(i) liest, set(i, x) ersetzt, remove(i) löscht, size() zählt.
Typen: In spitzen Klammern nur Klassen: Integer statt int.
for-each: for (String s : einkauf) ohne Index.
Allgemeine Hinweise
length, length() oder size()?
Array: temp.length ohne Klammern. String: wort.length(). ArrayList: einkauf.size(). Jede Verwechslung meldet der Compiler.
Kein int in spitzen Klammern
ArrayList<int> übersetzt nicht. Schreibe ArrayList<Integer> — hinein kommen trotzdem ganz normale Zahlen wie add(4).
for-each, wenn der Index egal ist
Brauchst du nur die Werte, ist for (int t : temp) kürzer und kann nie über das Ende hinauslaufen.
