- 1 Section
- 10 Lessons
- unbegrenzt
- Java Grundlagen10
- 1.1Java-Grundlagen: JDK, JVM, erstes Programm
- 1.2Variablen, Datentypen und Operatoren
- 1.3Kontrollstrukturen: if, else, switch
- 1.4Schleifen: for, while, do-while
- 1.5Arrays und Strings
- 1.6Methoden: Definition, Parameter, Rückgabe
- 1.7Fehlerbehandlung: try-catch-finally, Exceptions
- 1.8Einstieg in Klassen und Objekte
- 1.9Eingabe und Ausgabe: Scanner, System.out
- 1.10Praxisprojekt: Kleines Java-Programm von A bis Z
Arrays und Strings
Bisher hatte jede unserer Variablen genau einen Wert: ein Alter, einen Preis, einen Namen. Was aber wenn du 100 Punkte für 100 Schüler speichern willst? Ohne Arrays müsstest du 100 Variablen anlegen – das wäre Wahnsinn. Mit einem Array packst du alle 100 Werte in eine einzige Datenstruktur und sprichst sie über einen Index (eine Zahl) an.
Die Analogie: Ein Array ist wie ein Apartmenthaus. Es hat eine feste Anzahl Wohnungen (Größe), jede Wohnung hat eine Nummer (Index, beginnt bei 0!), und in jeder Wohnung kann ein Wert wohnen. Du kannst zu jeder Wohnung direkt hingehen: „gib mir den Wert in Wohnung 5" – das geht blitzschnell, egal ob die Wohnung am Anfang oder Ende des Hauses ist. Strings (Zeichenketten) sind technisch sehr nah verwandt – ein String ist im Grunde ein Array aus Zeichen mit ein paar Spezialfunktionen.
1) Arrays: die geordnete Liste mit Index
Ein Array hat eine feste Länge und enthält Werte desselben Typs. Du legst es mit eckigen Klammern an: int[] punkte = new int[5]; erstellt ein Array für 5 Zahlen. Wichtig: Java-Arrays sind 0-indexiert – das erste Element hat Index 0, das letzte Index (Länge−1). Klicke ein Element für Details:
punkte.length (kein () – ist eine Eigenschaft, keine Methode!). Wichtige Falle: ArrayIndexOutOfBoundsException. Wenn du punkte[5] oder punkte[-1] zugreifen willst → Exception zur Laufzeit, Programm bricht ab. Java prüft alle Zugriffe – das macht es sicherer als z.B. C, wo man mit ungültigen Indizes wahllos im Speicher landen kann.2) Array deklarieren, initialisieren und durchlaufen
Es gibt mehrere Wege ein Array zu erstellen. Hier die wichtigsten Varianten im Vergleich:
int[] zahlen = new int[5]; // 5 Elemente, alle 0
zahlen[0] = 42;
zahlen[1] = 87;
// Variante 2: direkt mit Werten
int[] punkte = {42, 87, 13, 95, 28};
// Variante 3: alternative Schreibweise (selten)
int[] werte = new int[]{10, 20, 30};
// Klassische for-Schleife mit Index
for (int i = 0; i < punkte.length; i++) {
System.out.println(punkte[i]);
}
// foreach-Schleife – einfacher wenn man Index nicht braucht
for (int wert : punkte) {
System.out.println(wert);
}
Die foreach-Schleife (mit Doppelpunkt) ist die bequemste Art durch ein Array zu gehen wenn du nur die Werte brauchst – nicht aber die Indexe. Wenn du den Index brauchst (z.B. um Werte zu ändern oder Position zu kennen), nimmst du die klassische for-Schleife.
3) Mehrdimensionale Arrays: das Schachbrett-Prinzip
Ein 2D-Array ist ein „Array von Arrays" – also wie eine Tabelle mit Zeilen und Spalten. Gut für Schachbretter, Spielfelder, Bilder als Pixel-Matrix oder Tabellen. Zugriff: matrix[zeile][spalte]:
int[][] matrix = new int[3][4];
matrix[1][2] = 42;
// Durchlaufen: zwei verschachtelte Schleifen
for (int zeile = 0; zeile < matrix.length; zeile++) {
for (int spalte = 0; spalte < matrix[zeile].length; spalte++) {
System.out.print(matrix[zeile][spalte] + " ");
}
System.out.println();
}
int[][][] cube), aber selten sinnvoll. Für komplexere Strukturen besser Klassen + Listen verwenden (siehe Collections in K40b). Mit dem Schleifen-Vorwissen aus Lektion 4 ist die doppelte for-Schleife für 2D-Arrays schnell verstanden.4) Strings: spezielle Arrays für Text
Ein String ist eine Zeichenkette – also Text. Anders als die primitiven Datentypen aus Lektion 2 ist String eine Klasse (Großbuchstabe!). Strings haben spezielle Methoden um mit Text zu arbeiten. Hier eine Übersicht der wichtigsten:
== vergleichen. "Hallo" == "Hallo" kann false ergeben weil == bei Objekten die Referenzen vergleicht, nicht den Inhalt. Strings IMMER mit .equals() vergleichen: name.equals("Anna Schmidt") → true. Bei Groß-/Kleinschreibung ignorieren: .equalsIgnoreCase(). Diese Falle ist eine der häufigsten Fehlerquellen bei Java-Anfängern.5) String-Konkatenation und String-Builder
Strings verketten geht mit +:
String nachname = "Schmidt";
String voll = vorname + " " + nachname; // "Anna Schmidt"
// Mit anderen Datentypen: werden automatisch zu String
int alter = 25;
String info = vorname + " ist " + alter + " Jahre alt";
⚠ Wichtig zu wissen: Strings sind in Java immutable (unveränderbar). name + "X" ändert den ursprünglichen String nicht – es entsteht jedes Mal ein neuer String. Bei vielen Verkettungen in einer Schleife wird das langsam. Für solche Fälle gibt es StringBuilder:
String result = "";
for (int i = 0; i < 1000; i++) {
result = result + i;
}
// SCHNELL: StringBuilder ist mutable
StringBuilder sb = new StringBuilder();
for (int i = 0; i < 1000; i++) {
sb.append(i);
}
String result = sb.toString();
Zusammenfassung
Array = feste Anzahl Werte gleichen Typs, indiziert ab 0. Deklaration: int[] werte = {1, 2, 3}; oder new int[5]. Zugriff per Index: werte[0]. Länge: werte.length. Durchlauf: klassische for-Schleife (mit Index) oder foreach (nur Werte). 2D-Arrays als Matrix mit zwei Indizes. ArrayIndexOutOfBoundsException bei ungültigem Index. String = Zeichenkette, Klasse mit nützlichen Methoden (length, charAt, substring, indexOf, contains, replace, split). String-Vergleich IMMER mit .equals(), niemals mit ==! Strings immutable → StringBuilder bei vielen Änderungen.
