8. Arrays

Ein Array ist eine Reihe von Elementen, die denselben Datentyp haben. Man kann es sich wie ein Schrank vorstellen, welcher jedoch unzählige Schubladen hat. In unserem Beispiel gehen wir mal von einer fixen Anzahl an Schubladen aus. Wir möchten ein Array kreieren, welches aus acht Schubladen besteht. Während wir im Alltag mit der Zahl eins anfangen, wenn wir etwas zählen möchten, beginnen wir in der Programmierung mit 0. Die Stellen werden auch Index genannt. Wenn wir also in der Programmierung vom Index 0 reden, so meinen wir die erste Stelle. Wenn wir vom Index 4 reden, so meinen wir wiederum die fünfte Stelle.

Ein Array kann von allen Datentypen sein, muss sich aber für einen entscheiden. Wir möchten eine Sammlung an Zahlen erstellen, demnach ist unser Array vom Datentyp int. In den eckigen Klammern von new int[8], können wir eine fixe Anzahl an Stellen festlegen.

int[] zahlen = new int[8];

Das hinzufügen von Werten in ein Array gestaltet sich sehr simpel. Wir weisen einen Wert einer bestimmten Stelle im Array zu. Möchten wir also den Wert 10 in die Stelle 3 packen, so müssen wir den Namen des Arrays aufrufen und in eckige Klammern die dritte Stelle angeben. Wir erinnern uns, in der Programmierung beginnt die Indexierung bei 0, also ist die dritte Stelle beim Index 2. Anschliessend weisen wir der dritten Stelle per Gleichheitszeichen den Wert zu.

zahlen[2] = 10;

Sollten wir den Wert aus der dritten Stelle in eine Variable speichern wollen, ist das ebenfalls kein Problem:

int Zahl1 = zahlen[0];

Um mehrere Werte gleichzeitig in ein Array zu speichern, gibt es zwei Varianten. Die erste eignet sich vor allem dann, wenn wir schon wissen, welche Werte genau gespeichert werden soll und es sich um eine überschaubare Menge handelt. Dafür übergeben wir dem Array die Werte, abgetrennt mit Kommas, in geschweiften Klammern. Das Array erstellt automatisch so viele Indexe, wie Werte übergeben wurden. Die Werte werden auch in der Reihenfolge indexiert.

int[] zahlen = {1,2,3,4,5,6,7,8};

Die zweite Möglichkeit brauchen wird am häufigsten, nämlich dann, wenn wir noch nicht so genau wissen, welche Werte übergeben werden und wie viele. Um Werte zu übergeben, benötigen wir eine for-Schleife. Dafür kreieren wir wie gewohnt eine Variable namens i und des Datentyps int mit dem Wert 0. Auch die zyklische Werte Erhöhung bleibt gleich, nur die Bedingung ist etwas verändert. Die for-Schleife wird nämlich nur so oft durchlaufen, wie Stellen im Array vorhanden sind. Die Anzahl an Arraystellen ermitteln wir mit zahlen.Length. Nun soll in jedem Durchlauf ein Wert in eine bestimmte Stelle des Arrays geschrieben werden. Da wir bei der Variable i mit dem Wert 0 beginnen, könne wir sie gleich als Indexangabe für das Array benutzen. Da sie nach jedem Durchlauf um eins erhöht wird, springt die Zuweisung für den Index ebenfalls um eins nach oben.

int[] zahlen = new int[8];
for
(int i = 0; i < zahlen.Length; i++) { zahlen[i] = i + 1; }
 
 

8.1 Mehrdimensionale Arrays

Im Gegensatz zu den eindimensionalen Arrays ist jetzt in den eckigen Klammern die Dimension angegeben. Dies wird durch die Anzahl Kommas gemacht. Zum Beispiel ist ein einziges Komma die zweite Dimension, zwei Kommas die dritte usw. Die Füllung des Arrays bleibt aber gleich, ausser die direkte Deklaration und Initialisierung (gleichzeitig)

int[,,] wuerfel = new int[5,5,5];  // 3-dimensional
int[,] quadrat = new int[5,5];     // 2-dimensional
int[] zahl = new int[5];           // eindimensional

Um die mehrdimensionalen Arrays aufzufüllen, müssen wir jetzt zwei (oder mehrere) Index für einen Wert haben. z.B. Im zweidimensionalen, haben wir den x- und den y-Index. Wir können den x-Index 4 und den y-Index 3 auswählen und dieser Stelle den Wert 5 geben.

int[,] quadrat = new int[5,5];
quadrat[4,3] = 5;

Wie bei den eindimensionalen Arrays, können wir Werte auch abfragen.

int ersteZahl = quadrat[4,3];

Jetzt hat auch die Vriable ersteZahl den Wert 5.

Die mehrdimensionalen Arrays benutzen wir, wie die eindimensionale Arrays. Auch hier arbeiten wir mit for-Schleifen, um Werte zu speicher oder abzufragen. Sie sind aber ein bisschen komplizierter, da wir zwei for-Schleifen ineinander schreiben müssen. Zusätzlich kommt noch die Abfrage der Länge, die mithilfe vom Befehl .getLength(x), wobei x für die Dimension steht (die erste, zweite usw. Dimension), erledigt wird.

Als Beispiel dazu, füllen wir einen mehrdimensionalen Array mit Werten ab:

int[,] quadrat = new int[5,5];
int zahl = 1;
for(int a = 0; a < quadrat.getLength(0); a++){
    for(int b = 0; b < quadrat.getLength(1); b++){
        quadrat[a,b] = zahl;
        zahl++;
    }
}

 
 

Stelle uns deine Frage


Julien Rösch


 

Amazon

 

E-Book

 

Gefällt dir CodeStarter?