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.
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.Array oder ArrayList: Array — feste Länge, temp[i], temp.length. ArrayList — wächst mit, get(i), size(). Beide zählen ab Index 0.
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.
