Java Schnellstart – Arrays
Bei der Verwaltung von großen Datenmengen reichen die bisher kennengelernten Variablen oftmals nicht aus. Ein weiteres Problem besteht darin, dass dein Code unübersichtlich wird, wenn du zu viele Variablen benutzt. Um das Problem zu lösen, gibt es in den meisten Programmiersprachen die sogenannten "Arrays". Arrays sind spezielle Variablen (oder genauer gesagt Objekte) zur Speicherung von vielen Werten.
Was sind Arrays?
Stell dir vor, du besitzt 100 Schuhe. Um diese sicher aufzubewahren, steckst du jedes Schuhpaar in einen Karton.
Wenn du einen bestimmten Schuh anziehen möchtest, musst du zunächst den Karton öffnen, um zu schauen, welches Paar sich darin befindet. In der Programmierung wäre diese "Schuh-Verwaltung" sehr zeitaufwendig, wenn du 100 Schuhe hast und schnell die Arbeitsschuhe finden musst. Jeder Schuh hätte in diesem Fall seine eigene Variable:
String karton1 = new Schuhe();
String karton2 = new Schuhe();
String karton3 = new Schuhe();
String karton4 = new Schuhe();
String karton5 = new Schuhe();
String karton6 = new Schuhe();
String karton7 = new Schuhe();
String karton8 = new Schuhe();
String karton9 = new Schuhe();
Wie du siehst, kann das deinen Code ziemlich unübersichtlich machen. Hier sind es nur neun Schuhkartons, aber was ist, wenn du zum Beispiel 100 oder 1000 Schuhe besitzt?
Zur besseren Verwaltung unserer Schuhe brauchen wir einen Schuhschrank. In diesem Schuhschrank können wir mehrere Schuhe ablegen und jederzeit problemlos aussuchen. In der Programmierung ist dieses Konzept als "Array" bekannt.
Im Java-Code sieht ein Array wie folgt aus:
String[] schuhschrank = new Schuhe[1000];
Erklärung: Wie du siehst, schreibt man hinter den Datentyp (String) zwei eckige Klammern []. Damit symbolisierst du, dass es sich um ein Array handelt.
Wie ein Schuhschrank besitzt auch ein Array eine maximale Größe an Elementen: Über das Keyword new sowie den Datentyp (String) geben wir die Größe des Arrays, in eckigen Klammern, an. Damit ist unser Schuhschrank (mit 1000 Schuhpaaren) erstellt.
Jetzt wollen wir bspw. ein neues Schuhpaar an die erste Stelle in unserem Schuhschrank platzieren. Im Code benutzt du für die Problemlösung einen Index. Mit dem Index gibst du an, auf welche Stelle in einem Array du zugreifen möchtest.
Wichtig: Ein Index fängt immer mit der Zahl "0" an und NICHT mit der Zahl "1".
Array-Index:
String[] schuhschrank = new Schuhe[1000];
schuhschrank[0] = new Schuhe(); // Wir legen die neuen Schuhe an die erste Stelle in unserem Schrank
// WICHTIG: Das erste Element im Index startet mit "0" und NICHT mit "1"
schuhschrank[3] = new Schuhe(); // Weiteres Beispiel: Platzierung eines neuen Schuhpaares an die vierte Stelle in unserem Schuhschrank
Array-Kurzschreibweise
Wenn dir die Array-Elemente bereits bekannt sind, kannst du auch die Kurzschreibweise verwenden:
String[] klassenliste = {"Paul", "Lisa", "Tom", "Aileen", "Emily", "Peter"};
System.out.println(klassenliste[0]); // Textausgabe "Paul"
Array-Größe herausfinden
Um sich in bestimmten Anwendungsfällen die Array-Größe nicht merken zu müssen, kannst du über die Variable length direkt auf die Größe eines Arrays zugreifen.
String[] klassenliste = {"Paul", "Lisa", "Tom", "Aileen", "Emily", "Peter"};
System.out.println(klassenliste.length); // Ausgabe 6, da 6 Elemente im Array vorhanden sind
Jedes Element in einem Array durchlaufen (und z.B. als Text ausgeben)
Möchten wir jeden Schüler mit einem System.out.println ausgeben, dann können wir das Array mit einer for-Schleife durchlaufen:
String[] klassenliste = {"Paul", "Lisa", "Tom", "Aileen", "Emily", "Peter" };
for(int i = 0; i < klassenliste.length; i++)
{
System.out.println(klassenliste[i]);
}
/* Ausgabe:
Paul
Lisa
Tom
Aileen
Emily
Peter */
Code-Aufgabe: Alle Schüler mit einem "a" im Namen als Text ausgeben
- Für statistische Auswertungen sollen alle Schüler einer Klassenliste herausgefiltert werden, die ein 'a' (kleingeschrieben) in ihrem Namen haben. Das Array zur "Klassenliste" ist im unten stehenden Editor bereits mit 10 Schülern vorgegeben. Tipp: Um einen String auf das kleine "a" zu prüfen, kannst du die Methode contains(String text) benutzen.
- Benutzte eine for-Schleife und durchlaufe das Array "klassenliste".
- Zähle in einer eigenen Variable z.B. "counter", wie viele Schüler ein kleines 'a' in ihrem Namen haben.
- Gib die Zahl (counter) am Ende als Text aus.
Code-Editor:
[lp_spoiler title="Lösung anzeigen" class="da"]
Lösung:
class Main {
public static void main(String[] args) {
String[] klassenliste = {"Paul", "Lisa", "Tom", "Aileen", "Emily", "Peter", "Frank",
"Lukas", "Lara", "Amy"};
int counter = 0;
for(int i = 0; i < klassenliste.length; i++)
{
if(klassenliste[i].contains("a"))
{
System.out.println("Schüler(in) mit einem 'a': " + klassenliste[i]);
counter++;
}
}
System.out.println("Anzahl der Schüler und Schülerinnen mit einem 'a' im Namen: " + counter);
}
}
[/lp_spoiler]
Fazit zu Arrays
Arrays helfen deinen Code übersichtlicher und ressourcenfreundlicher zu machen. Zu viele Variablen machen deinen Code unleserlich und unflexibel. Mit Arrays hast du ein neues Werkzeug, um mehrere Werte eines bestimmten Datentyps zu verwalten (aus 100 Schuhkartons wird 1 Schuhschrank). Ein Array ist nicht nur auf Strings oder "Schuhe" begrenzt. Du kannst damit mit jedem Datentyp in Java arbeiten.