Arrays (Felder)
Ein Array (deutsch: "Feld") ermöglicht es, viele Werte des gleichen Datentyps unter einem Namen zu speichern. Statt hunderte einzelne Variablen zu erstellen, verwendest du ein Array!
Stell dir vor: Du möchtest die Noten von 30 Schülern speichern. Würdest du wirklich 30 separate Variablen erstellen?
double note1 = 2.3;
double note2 = 1.7;
double note3 = 3.1;
// ... 27 weitere Variablen ...
Mit einem Array geht das viel eleganter:
double[] noten = new double[30]; // Array für 30 Noten
Oft möchte man viele gleichartige Daten (d.h. Daten mit demselben Datentyp) speichern, z.B. die ersten 1000 Primzahlen. Stell Dir vor, Du müsstest für jede dieser Zahlen einen eigenen Variablennamen vergeben:
int p1 = 2;
int p2 = 3;
int p3 = 5;
...
int p1000 = ?!?
Oder stell Dir vor, Du möchtest dann diese 1000 gespeicherten Zahlen kommasepariert ausgeben (2, 3, 5, 7, …):
println(p1 + ", " + p2 + ", " + p3 + ", " + p4 + ", " + ... + p1000);
Kein Mensch möchte das tippen müssen. Das muss doch besser gehen!
Ein Array ist ein Datentyp, der es gestattet, viele gleichartige Daten zu speichern und durch Angabe eines Index (Position) schnell auf sie zuzugreifen.
Array erstellen und verwenden
Array deklarieren und initialisieren
Wichtig:
- Arrays starten bei Index 0, nicht bei 1!
- Ein Array mit 5 Elementen hat die Indizes 0, 1, 2, 3, 4
- Mit
.length
bekommst du die Anzahl der Elemente
Verschiedene Arten, Arrays zu erstellen
Arrays mit Schleifen verwenden
Arrays und Schleifen passen perfekt zusammen!
Mit for-Schleife durch Array iterieren
Enhanced For-Schleife (for-each)
Für das einfache Durchlaufen gibt es eine elegantere Schreibweise:
Praktische Array-Operationen
Maximum und Minimum finden
Element suchen
Aufgabe: Rätsel (Nachvollziehen)
Aufgabe: Führe das Programm schrittweise aus und notiere dir, welche Werte in welcher Reihenfolge zugewiesen werden.
0: 24 (zahlen[0] = zahlen[2] * 3 = 8 * 3 = 24)
1: 12 (zahlen[1] = 12)
2: 8 (zahlen[2] = 8)
3: 36 (zahlen[3] = zahlen[1] + zahlen[0] = 12 + 24 = 36)
Übung: Notenverwaltung
Erstelle ein Programm zur Verwaltung von Schulnoten:
- Erstelle ein Array für 5 Noten
- Fülle es mit Noten von 1.0 bis 6.0
- Berechne den Notendurchschnitt
- Finde die beste und schlechteste Note
- Zähle, wie viele Noten besser als 3.0 sind
Teste-Dich-Projekt 1: Zahlen-Statistik
Erstelle ein Programm, das:
- Ein Array mit 10 zufälligen Zahlen zwischen 1 und 100 erstellt
- Diese Zahlen ausgibt
- Folgende Statistiken berechnet:
- Durchschnitt
- Maximum und Minimum
- Anzahl der geraden Zahlen
- Anzahl der Zahlen über 50
Tipp: Für Zufallszahlen verwende: (int)(Math.random() * 100) + 1
Testfälle
- Array mit 10 Zahlen zwischen 1 und 100
- Korrekte Berechnung von Durchschnitt, Max, Min
- Richtige Zählung von geraden Zahlen und Zahlen > 50
Teste-Dich-Projekt 2: Einkaufsliste
Erstelle eine interaktive Einkaufsliste:
- Array für 5 Artikel-Namen (String)
- Array für 5 Preise (double)
- Benutzer kann Artikel und Preise eingeben
- Programm zeigt die komplette Liste an
- Berechnet den Gesamtpreis
- Findet das teuerste und billigste Produkt
Häufige Fehler vermeiden
Typische Array-Fehler:
-
Index außerhalb des Bereichs:
int[] zahlen = new int[5]; zahlen[5] = 10; // FEHLER! Index geht nur von 0-4
-
Verwechslung von length und length():
zahlen.length // ✓ Richtig für Arrays text.length() // ✓ Richtig für Strings
-
Vergessen der Index-Initialisierung bei Schleifen:
for (int i = 1; i <= zahlen.length; i++) // FEHLER! for (int i = 0; i < zahlen.length; i++) // ✓ Richtig
Erweiterte Aufgaben:
- Implementiere Bubble Sort zum Sortieren eines Arrays
- Erstelle ein Programm, das Doppelte in einem Array findet
- Programmiere ein einfaches Lager-Verwaltungssystem mit Arrays
- Erstelle ein Quiz-Programm mit Fragen und Antworten in Arrays
Quellen
In Anlehnung an: https://www.learnj.de/doku.php?id=types:arrays:start