Skip to main content

So kannst du Java Arrays mit for Schleife füllen und auslesen

Wir haben in einem anderen Beitrag bereits über Java Arrays gesprochen.

So ein Array speichert Zahlen, Texte oder Objekte in eine Art Liste.
Und dann kannst du ganz bequem über den Index das Array füllen und die bereits enthaltenen Werte abrufen.

Ganz bequem?
So, wie ich dich aus dem letzten Beitrag entlassen habe, war das überhaupt nicht bequem. 🙂

Schau dir einfach mal diesen Code dazu an.


public class ArrayForSchleife {
 
public static void main(String[] args) {
int[] arrayEins = new int[8]; // arrayEins mit Länge von 8
arrayEins[0] = 0; // erstes Element i = 0
arrayEins[1] = 21;// zweites Element i = 1
arrayEins[2] = 12;
arrayEins[3] = 83;
arrayEins[4] = 234;
arrayEins[5] = 15;
arrayEins[6] = 62;
arrayEins[7] = 72; //achte Element des Array i = 8
 
System.out.println(arrayEins[0]);
System.out.println(arrayEins[1]);
System.out.println(arrayEins[2]);
System.out.println(arrayEins[3]);
System.out.println(arrayEins[4]);
System.out.println(arrayEins[5]);
System.out.println(arrayEins[6]);
System.out.println(arrayEins[7]);
}
}

Und mit diesem Wissensstand habe ich dich zurückgelassen.
So aufwendig war es ein Array zu füllen und sich die Werte ausgeben zu lassen.

Du siehst das Array hat eine Länge von 8.
Dieses Array kann somit 8 Zahlen vom Datentyp Integer speichern.

Du siehst auch, wie viele Zeilen Code ich benötige, um dieses Array zu füllen.
Und genau die gleiche Anzahl benötige ich um die Zahlen aus dem Array zu lesen.

Das ist sch…. 🙂
Lass uns einen besseren Weg finden.

Du kannst Java Arrays mit einer for Schleife füllen.

Und so geht’s.

Die for Schleife besitzt einen Schleifenkopf.
Und dieser Kopf sieht normalerweise so aus:
for (int i = 0; i < endwert ; i++)

Die Schleife startet bei i=0.
Und wird solange durchlaufen bis i nicht mehr kleiner als ein bestimmter Endwert ist.
Und bei jedem Durchlauf wird dann i um eins erhöht.

Und ein Array?
Ein Java Array hat ebenfalls einen Index i.
Dieser gibt die Position des Elementes an.

Es liegt nahe, dass sich dies kombinieren lässt.
Und so würde der Code aussehen.


public class ArrayForSchleife {
 
public static void main(String[] args) {
int[] arrayEins = new int[8];
 
for (int i = 0; i < 8 ; i++){
arrayEins[i]=1; // Jedes Element im Java Array bekommt den Wert eins zugewiesen
}
 
System.out.println(arrayEins[0]); //Bildschirmausgaben
System.out.println(arrayEins[1]);
System.out.println(arrayEins[2]);
System.out.println(arrayEins[3]);
System.out.println(arrayEins[4]);
System.out.println(arrayEins[5]);
System.out.println(arrayEins[6]);
System.out.println(arrayEins[7]);
}
}

Die for-Schleife startet bei i=0;
Die Schleife wird solange durchlaufen, bis "i" nicht mehr kleiner als 8 ist.

Wieso acht?
Acht ist die Länge des Arrays.

Und bei jedem Durchlauf wird i um eins erhöht.

Im Schleifenrumpf wird dann das Array gefüllt.
Und zwar wird es an der Stelle i gefüllt.

Am besten ist……
Wir spielen die for Schleife einmal gedanklich für die ersten drei Elemente durch.

  • Die for Schleife startet bei i =0.
  • Jetzt wird geprüft, ob i kleiner als 8 ist.
    Jawohl ist es.
  • Dann springt das Programm in den Schleifenrumpf.
    Und hier wird für i=0 oder "arrayEins" beim Index Null der Wert 1 gesetzt.
  • Und dann wird i um eins erhöht.

Java Arrays For Schleife 1 Durchlauf

Und weiter geht’s.

  • I hat den Wert 1.
  • Die Schleife prüft: "Ist i kleiner als 8?"
    Jawohl und ab in den Schleifenrumpf.
  • Da i jetzt den Wert eins hat - bekommt jetzt das Element mit Index 1 den Wert von 1 zugewiesen.
  • Wie gehabt wird am Ende der Schleife, i um eins erhöht.

Java Arrays For Schleife 2 Durchlauf

"I" hat jetzt den Wert zwei und das Spiel beginnt von vorn.
Java Arrays For Schleife 3 Durchlauf

Das Ganze läuft solange bis i den Wert 7 hat.
Dann bricht die Schleife ab.
Somit wurden acht Elemente (0 bis 7) in das Array gesteckt.

Und natürlich kannst du mit der for Schleife auch die Werte aus den Arrays lesen.

Im Prinzip ist es die gleiche Struktur.
Es ändert sich nur eine Kleinigkeit im Schleifenrumpf.

Und zwar machst du jetzt keine Zuweisung mehr.
Du lässt dir den Wert über eine System.out.println()-Anweisung ausgeben.

Java Arrays For Schleife Lesen

Und dies wäre der Code dazu.


public class ArrayForSchleife {
 
public static void main(String[] args) {
int[] arrayEins = new int[8];
 
/*
 * For Schleife zum Füllen eines Java Array
 */
for (int i = 0; i < 8; i++) {
arrayEins[i] = 1; // Jedes Element erhält die Zahl eins.
}
 
/*
 * For Schleife zum Lesen eines Java Array
 */
for (int i = 0; i < 8; i++) {
System.out.println(arrayEins[i]); // Rückgabe der Werte
}
}
}

Sieht doch schon viel attraktiver aus, als zum Anfang des Beitrages, oder?

Eins fehlt noch….

Die Länge des Arrays wird zum Problem.

Stell dir vor.
Du möchtest jetzt nicht 8 Werte in das Array stecken, sondern 100.

Was bedeutet das?
Du musst die Deklarierung des Arrays ändern.
int[] arrayEins = new int[100];

Okay, kein Problem.
Aber was heißt das für die Schleifen?

Ich habe im Code einmal die Länge des Arrays geändert.


public class ArrayForSchleife {
 
public static void main(String[] args) {
int[] arrayEins = new int[100]; // Array mit Länge von 100
 
/*
 * For Schleife zum Füllen eines Java Array
 */
for (int i = 0; i < 8; i++) {
arrayEins[i] = 1; // Jedes Element erhält die Zahl eins.
}
 
/*
 * For Schleife zum Lesen eines Java Array
 */
for (int i = 0; i < 8; i++) {
System.out.println(arrayEins[i]); // Rückgabe der Werte
}
}
}

Probiere es jetzt aus.
Ändere, so wie ich, die Länge des Arrays und klicke auf "Run".

Wie viele Werte kommen zurück?
100 oder 8?

8 - Es sollten aber 100 sein.
Du musst also immer auch den Endwert der for-Schleife ändern.
Denn jetzt läuft die for-Schleife immer noch - nur 8-mal.
(int i = 0; i < 8 ; i++)

Also ändere die for-Schleife ebenfalls ab.
(int i = 0; i < 100 ; i++)

Ähhh- ich habe mich falsch ausgedrückt.
Du musst nicht nur die eine for Schleife abändern.
Du musst beide For Schleifen abändern.
Und das wird jetzt zum Problem.

Wieso?
Das hat nichts mit Faulheit zu tun.
Der Code ist einfach fehleranfällig.

Denn jedes Mal, wenn du die Länge des Array änderst - Musst du auch die for-Schleifen ändern, welche das Array lesen oder füllen.
Und somit musst du das jedes Mal bedenken.

Und noch viel schlimmer.
Du musst wissen, welchen Code du ändern musst.

Vielleicht greifen Java Methoden auf das Array zu.
Vielleicht werden Werte aus dem Array in andere Methoden übergeben.

Du siehst, wenn dein Code etwas komplexer ist, dann wird das wirklich zum Problem.

Also was machst du?

Für jedes Array bietet Java eine bestimmte Variable an.

Und diese Variable speichert die Länge des Arrays.

Wie greifst du auf diese Variable zu?
Per Punktnotation - Wie beim Objekt.

  1. Du schreibst den Namen der Referenzvariablen "arrayEins".
  2. Setzt den Punkt.
  3. Und dann die Variable "length".

Und diese Variable gibt dir immer die Länge des entsprechenden Arrays zurück.

Probier diesen Code einmal aus:


public class ArrayForSchleife {
 
public static void main(String[] args) {
int[] arrayEins = new int[100]; //Array mit Länge 100
int[] arrayZwei = new int [8]; // Array mit Länge 8
 
System.out.println(arrayEins.length); //Ausgabe 100
System.out.println(arrayZwei.length); //Ausgabe 8        
}
}

Und zwar erscheint jetzt die Länge 8 und 100.
Genauso, wie lang diese Arrays nun mal sind.

Und was bringt es, wenn Java das weiß?
Du kannst jetzt diese Variable für die Anzahl der Schleifendurchläufe nutzen.
Und dann kannst du die Länge des Arrays ändern und die Schleifendurchläufe ändern sich automatisch mit.

Ist doch eine tolle Sache, oder?
Lass uns das einbauen.


public class ArrayForSchleife {
 
public static void main(String[] args) {
int[] arrayEins = new int[100]; //Array mit Länge 100
 
for (int i = 0; i< arrayEins.length; i++){
arrayEins[i]=1;
} 
 
for (int i = 0; i<arrayEins.length;i++){
System.out.println(arrayEins[i]);
} 
}
}

Klicke auf "RUN" und jetzt sollte 100-mal eine Eins erscheinen.
Jetzt werden genauso viele Schleifendurchläufe produziert, wie das Array Elemente entgegen nehmen kann.

Probiere es aus.
Und ändere die Länge des Array von 100 auf 8 oder auf 6.

Nicht schlecht, oder?

Das Ganze ist noch nicht sehr spektakulär.
Mit einem Array, welches 100-mal eine 1 speichert, hol ich dich wahrscheinlich nicht von den Socken. 🙂

Und deshalb sind hier noch einige Beispiele wie du Java Arrays mit for Schleife nutzen kannst.

Ganz wichtig, ist die Tatsache, dass alle Werte gespeichert werden.
Und jeder Wert im gespeicherten Array kann in Methoden genutzt und abgerufen werden.

Also hier das erste Beispiel:
Die Zahlen 1 bis 100.


public class ArrayForSchleife {
 
public static void main(String[] args) {
int[] arrayEins = new int[101];
 
for (int i = 0; i < arrayEins.length; i++) {
arrayEins[i] = i; // i wird jedes Mal erhöht und gespeichert
}
 
for (int i = 0; i < arrayEins.length; i++) {
System.out.println(arrayEins[i]);
}
}
}

Noch ein Beispiel.
Die Viererreihe soll im Array gespeichert werden.


public class ArrayForSchleife {
 
public static void main(String[] args) {
int[] arrayEins = new int[101];

int viererZahl=0; // lokale Variable soll gespeichert werden
for (int i = 0; i < arrayEins.length; i++, viererZahl=viererZahl+4) {
arrayEins[i] = viererZahl;
}
 
for (int i = 0; i < arrayEins.length; i++) {
System.out.println(arrayEins[i]);
}
}
}

Und das letzte Beispiel.
Ein Java Array, welches Zufallszahlen zwischen 0 und 100 speichert.


public class ArrayForSchleife {
 
public static void main(String[] args) {
int[] arrayEins = new int[101];
 
 
for (int i = 0; i < arrayEins.length; i++) {
arrayEins[i] = (int)(Math.random()*100);
}
 
for (int i = 0; i < arrayEins.length; i++) {
System.out.println(arrayEins[i]);
}
}
}

Zusammenfassung:

  • Mit einer for-Schleife kannst du deine Java Arrays mit Werten füllen.
  • Und du kannst mit einer anderen For-Schleife dir die Werte wieder zurückgeben lassen.
  • Dabei dient der Schleifenzähler i gleichzeitig als Index des Arrays.
  • Um die Länge des Array dynamisch zu halten, nutzt du die Variable length.

Ähnliche Beiträge

Polymorphie bringt Vorteile für Java Arrays

Java Polymorphie Arrays

Wenn Java Arrays, Schubladen oder Container sein sollen… Dann wäre der Gebrauch einer solchen Schublade ziemlich einseitig und festgefahren. Denn in jedes Array passen zwar mehrere Daten – aber immer nur vom gleichen Datentyp. Immer gleicher Datentyp? Also eine Schublade nur für Socken, Unterwäsche und der ganze andere Kram passt dann eben nicht hinein. Um […]

So kannst du in Java Und Verknüpfung anlegen und auswerten

Java Und

In Java stehen dir eine Menge Operatoren zur Verfügung. Einer dieser Operatoren ist der Und-Operator. Dies ist ein logischer Operator, da dieser sogenannte Wahrheitswerte mit einander verknüpft. Also…. Was erwartet dich in diesem Beitrag? Zuerst möchte ich dir die Aussagenlogik hinter dem Und-Operator zeigen. Also wann sind Aussagen wahr und wann sind diese falsch. Dann […]

Zwei smarte Möglichkeiten eine Java Zufallszahl zu erzeugen

Java Zufallszahl

Java Zufallszahl – Wieso? In der Java Programmierung benötigst du immer wieder einmal Zufallszahlen. Du möchtest deine Software mit Daten testen und dir keine Zahlen ausdenken. Du benötigst Stichproben, welche ein reales Verhalten simulieren. Du hast ein Spiel entworfen und die Akteure sollen mit zufälligen aber unterschiedlichen Größen, Rüstungsleveln usw. auftreten. Die Einsatzmöglichkeiten für Zufallszahlen […]

Java Duales Zahlensystem – Binäre Zahlen in Java umwandeln

Java Dual System

Das duale Zahlensystem hat viele Bezeichnungen. Oft wird auch es Dualsystem oder Binärsystem genannt. Es besteht aber immer aus 2 Zahlen. Man verwendet oft die Zahlen 0 und 1. Es können aber auch sämtliche anderen Zahlenpaare sein. Zum Beispiel 7 und 175 sind für sich genommen, auch ein normales Zahlenpaar und somit ein Dualsystem. Mit […]

Lassen wir Java rechnen – Die Rechenoperationen für Variablen

Java rechnen

Ich liebe Mathe. In der Biographie „Der Mann, der die Zahlen liebte“, stellt Paul Hoffmann das Mathematikgenie Paul Erdös vor. Erdös war eines der größten Genies des 20 Jahrhunderts. Er arbeitete mit zahlreichen Wissenschaftlern zusammen und verfasste durchschnittlich mehr Publikationen im Jahr, als andere Mathematiker im ganzen Leben. Da Erdös sich mit sehr vielen Theoremen […]

So organisierst und verwaltest du ganz bequem deine Java Projekte

Du kennst das auch. Denn du bist ja fleißig. Und weil du so fleißig bist, hast du mitunter auch mehrere Java Projekte gleichzeitig laufen. Und dann kommt es vor, dass du enorm viele Java Projekte am Laufen hast. Und dein Package-Explorer wird extrem unübersichtlich. In diesem Beitrag möchte ich dir zwei Varianten vorstellen, wie du […]

Du musst in Java nicht jede Exception fangen

Java Exception fangen

Kennst du die Metapher mit dem Jongleur und den Bällen? Ein Jongleur hält drei Bälle in der Luft, dann vier und irgendwann fünf. Aber irgendwann ist es genau ein Ball zu viel. Und Alles bricht zusammen. Ja ein Ball zu viel, kann alles versauen. 🙂 Und so ist es doch immer im Leben. Du kannst […]