Arrays 1 Allgemeines 2 Aufbau eines Arrays 3

Werbung
Arrays
AnPr
Name
1
Klasse
Datum
Allgemeines
Arrays sind in Java sogenannte„statische Felder“ bezeichnet. Statische Felder sind zusammengesetzte Datentypen, deren Länge initial (bei der Deklaration) festgelegt wird, danach jedoch nicht mehr geändert werden
kann. Im Gegensatz zu statischen Feldern gibt es dynamische Felder, welche jederzeit vergrößert, oder verkleinert werden können. In Java würde man hier bspw. ArrayList Objekte verwenden.
2
Aufbau eines Arrays
Es gibt Situationen, bei denen die unstrukturierten Datentypen für die Programmierung nicht ausreichend
sind. Wenn beispielsweise eine Liste von Teilnehmern, oder die Belegung eines Schachfeldes gespeichert
werden muss, bieten nur die strukturierten Datentypen wie Arrays eine Lösung. Ein Array ist eine Liste von
Werten, welche über einen einzigen Variablennamen und einem Index angesprochen werden kann. Hier ein
Beispiel eines Arrays mit 4 Characterwerten:
Die Position – eigentlich Idexposition ist eine Art Adresse, um an den entsprechenden Wert zu gelangen.
Wichtig zu wissen ist, dass die erste Indexposition die 0 ist! Wenn ein Array also die Länge 4 aufweist, dann
ist die höchste Indexposition die 3.
Es gibt auch mehrdimmensionale Arrays, wobei jedes Element
somit mehrere Adresselemente aufweist. Bspw. hat im untenstehenden Array das Feld, welches den Wert ‚x‘ aufweist, die
Indexpositionen [1][2] – also zwei Werte, da es sich um ein
zweidimmensionales Array handelt.
3
Erzeugen eines Arrays
Nachdem Arrays eine Liste von Werten darstellt, muss man sich zuerst überlegen, welcher Datentyp die
Werte darstellen. Es ist grundsätzlich möglich, von jedem, in Java unterstützten Datentyp ein Array zu deklarieren (egal ob einfache Datentypen wie int, oder auch zusammengesetzte Datentypen wie String).
In Java gibt es zwei Methoden ein Array zu erzeugen. Entweder mit vordefinierten Werten, oder ohne Belegung. Vordefinierte Werte wählt man im Regelfall, wenn man Konstanten als Array festlegen möchte.
Hier zuerst die Option, ein Array mit vordefinierten Werten zu erzeugen:
int[] iaMyArray = {1,2,3,4,5};
Die beiden eckigen Klammern zeigen Java an, dass es sich um ein Array handelt. Da die Klammern nach
dem Datentyp int kommen, handelt es sich somit um ein integer Array. Anschließend kommt, wie bei allen
anderen Deklaration, der Arraname. Die Initialisierung ist eine Zuweisung einer Datenmenge, welche in
geschweiften Klammern, getrennt durch Kommas festgelegt ist.
Um nun zu prüfen, ob die Werte tatsächlich vorhanden sind, können Sie nun lesend auf die Werte zugreifen:
System.out.println(iaMyArray[2]);
AnPr_Arrays_v01.docx
Seite 1
Arrays
AnPr
Die Deklaration ohne vordefinierte Werte sieht wie folgt aus:
int[]iaMyArray = new int[4];
Da die Werte nicht festgelegt werden, muss nun auf eine andere Art festgelegt werden, wie viele Einträge
das Array aufnehmen kann. Dazu wird mit dem Schlüsselwort „new“ ein neues Objekt erzeugt. Die Eigenschaften des Objektes folgen nach „new“ in der Form, dass der Datentyp wiederholt wird und in den eckigen
Klammern die Arraygröße eingetragen wird.
Aufgabe:
Erzeugen Sie jeweils ein Array ohne Vorbelegung mit den unten stehenden Datentypen. Prüfen Sie anschließend, welche initialen Werte in dem Array vorliegen (mit System.out.println()), also welche Werte das System automatisch einträgt:
Datentyp:
Initwert
int
char
double
boolean
String
Mehrdimensionale Arrays werden entsprechend erzeugt. Hier ein Beispiel für eine Vorbelegung:
int[][] iaMyArray = {
{1,2,3,4,5},
{10, 20, 30, 40, 50},
{100, 200, 300, 400, 500}
};
Die Datenmengen werden über verschachtelte geschweifte Klammern erzeugt. Wichtig bei einem mehrdimensionalen Array ist, dass die Anzahl der Dimensionen über die Anzahl der eckigen Klammern festgelegt
wird. Bei einer Arraydeklaration ohne Vorbelegung ist der Syntax wie folgt:
int[][] iaMyArray = new int[2][4];
Hinweis: Bei mehrdimensionalen Arrays ist die allgemeine Dimmension immer vorne, die spezielleren immer
hinten. Beispiel:
String[][] saPerson = {
{"Peter", "Müller"},
{"Petra", "Maier"},
{"Klaus", "Kleber"},
{"Gundula", "Gause"}
};
Hier ist die erste Dimension die Personen, die zweite Dimension die Vor/Nachnamendimesion. Eine Anfrage
bezüglich der Personenanzahl wäre somit:
System.out.println(saPerson.length);
Es kommt somit die 4 raus. Hätte man die Dimensionen umgedreht, so käme immer die 2 raus, egal wie viele
Personen in das Array eingetragen sind, da für jede Person ein Vorname und ein Nachname (also 2 Einträge) vorgesehen ist.
Seite 2
AnPr
4
Arrays
Auslesen / Eintragen der Werte
Mit Arrays kann man genauso arbeiten, wie mit „normalen“ Variablen. Der einzige Unterschied ist, dass
man neben der Arrayvariablen noch die Indexposition mit angeben muss. Danach kann sowohl lesend, als
auch schreibend auf die Werte zugegriffen werden:
int[]iaMyArray = new int[3];
iaMyArray[0] = 5; // schreibender Zugriff
System.out.println(iaMyArray[0]); // lesender Zugriff
Oftmals gibt es die Notwendigkeit, ein ganzes Array auszugeben. Hier greift man sinnvollerweise auf Schleifen zurück:
int[] myArray = {1,2,3,4,5};
for (int = 0; i < myArray.length; i++)
{
System.out.println(myArray[i]);
}
Anmerkung: Für das Auslesen einfacher Arrays wurde in Java auch eine Kurzform von Schleifen realisiert,
welche auf die Zählvariable verzichtet und pro Durchlauf den Wert in eine „Arbeitsvariable“ schreibt:
int[]iaMyArray = {1,2,3,4,5};
for (int iValue : iaMyArray)
{
System.out.println(iValue);
}
Bei einem Mehrdimmensionalen Array müssen entsprechend zwei Schleifen umgesetzt werden:
int[][] myArray = {{1,2,3,4,5}, {6,7,8,9,10}};
for (int i = 0; i < myArray.length; i++)
{
for (int j = 0; j < myArray[i].length; j++)
{
System.out.println(myArray[i][j]);
}
}
Seite 3
Arrays
5
AnPr
Lizenz
Diese(s) Werk bzw. Inhalt von Maik Aicher (www.codeconcert.de) steht unter einer
Creative Commons Namensnennung - Nicht-kommerziell - Weitergabe unter gleichen Bedingungen 3.0 Unported Lizenz.
Seite 4
Herunterladen