Java Arrays
In diesem Tutorial geht es um die Funktionsweise und Implementierung von Arrays in der Programmiersprache Java. Ein Array ist eine wichtige Erweiterung der Datentypen und kann Objekte, atomare Datentypen und auch komplexe Datentypen beinhalten. Ein Array kann dabei 1-Dimensional oder auch Multi-Dimensional sein. Doch dazu gleich mehr. Ingesamt werden wir Ihnen alle wichtigen Konzepte für die Verwendung von Arrays vermitteln.
Arrays = Container
Was ist ein Array eigentlich ? Im Prinzip ist ein Array ein Feld oder eine Aneinanderreihung von Daten, das dann als einzelne Variable fähig ist eine Sammlung von Objekten zu beherbergen und verwalten.
Der Vorteil liegt klar auf der Hand, es erspart viel Zeit und Arbeit mit großen Mengen an gleichartigen Daten des selben Datentyps umzugehen und diese aufzurufen, zu verändern und zu löschen.
Array Speicherverwaltung
Jeder, in einem Arrayfeld angelegter Datentyp muss natürlich im Arbeitsspeicher allokiert werden. Der Untschied zu einer "normalen" Variable ist, dass diese generell nur auf einem Stack angelegt wurde, jedoch nicht im Arbeitsspeicher, denn Arrays werden in Java durch eine eigene Klasse verwaltet bzw. dargestellt und bilden somit keinen eigenen atomaren Datentypus.
Array in Java implementieren
Da Arrays durch eine eigene Klasse in Java repreasentiert werden gibt es eine Reihe von vorgefertigten aber auch erweiterbaren Klassenmethoden (Ich weiss leider gerade nicht ob die Arrayklasse als Final in Java deklariert ist, ueber Infos waere ich dankbar)!
Ein Array in Java deklarieren
Da ein Container auf dem Speicher angelegt werden muss, ist der Typ und die Groesse zuvor festgelegt werden. Wie bereits oben erwaehnt, ist der Tatentypus frei waehlbar ob nun eigenen erzeugte oder atomare Datentypen. Ein Array wird durch den Klammeroperator erzeugte z.B.
Datentyp [] name = new Datentyp [anzahl felder];
Zugriff auf Array Datenelemente
Auf ein Arrayelement wird ueber die Indexposition zugegriffen, an dem es auch gespeichert wurde.
Man muss verstehen, dass der Index immer bei Position 0 beginnt, das letzte Element als bei Anzahl - 1 liegt.
Zugriff erfolgt ueber die Befehlszeile
Arrayname[Indexposition];
Speicherung unter einer Position erfolgt analog.
Arrayname[Indexposition] = Wert;
Es faellt sogleich auf, dass es somit sehr einfach moeglich ist ein Array ueber Schleifen zu initialisieren.
Um z.B. ein Array mit den Quadratzahlen von 1-100 zu fuellen, koennte man folgendes kleine Programm schreiben.
public class Quadratzahlen{
public static void main(String [] args){
int[] quadrat = new int[101];
for(int i=0;i<=100;i++){
quadrat[i]=i*i;
}
}
}
Nun wollen wir jedoch mehrdimensionale Arrays betrachten.
n-dimensionale Arrays
Ein Array kann nicht nur eine eindimensionale Aufreihung von Daten sein, sondern auch Felder und Bloecke bilden. Bei einem eindimensionalen Array koennen wir uns das am besten als eine Schnur mit Knoten drin vorstellen, jeder Knotenpunkt ist ein Datensatz eines Datentypes.
Bei einem zweidimensionalen sollte man sich alles wie eine Tabelle vorstellen d.h. Zeilen und Spalten.
Wir erstellen nun ein kleines Programm, welches wie obiges die Quadratzahlen ausrechnet, jedoch auch die entsprechenden Basen mit angibt, dazu benötigen wir eine Tabelle mit 2 Spalten und 100 Zeilen. Das Programm dazu sieht wie folgt aus.
public class Quadratzahlen2{
public static void main(String[] args){
int [][] quadrat=new int [101][2] // wie wir sehen wird es genauso initialisiert nur mit
// 2 eckigen Klammern
for(int i=0;i<=100;i++){
quadrat[i][0]=i;
quadrat[i][1]=i*i;
System.out.print(quadrat[i][0]+" ");
System.out.println(quadrat[i][1]);
}
}
}
Diese Programm gibt uns nun tabellarisch die Basen + deren Quadratzahlen nebeneinander aus. Wie wir nun sehen, werden n-dimensionale Arrays fast genauso wie 1-dimensionale Arrays initialisiert, für jede Dimension eine weitere eckige Klammer + Indexbereich.
Zusammenfassung
Wie wir im Allgemeinen sehen sind Arrays sehr nützlich um mit großen Mengen an Werten zu arbeiten, diese zu initialisieren und manipulieren. Arrays sind unentbehrlich in fast jeder Programmiersprache und in Java sehr leicht über Schleifen zu bearbeiten. In Java bringen Arrays eine Menge Funktionen mit, welche hier nun nicht genauer erläutert habe und ich empfehle aus diesem Grund das Studium der Java KLassen-Dokumentation um mehr über Funktionen wie Copy-Array oder statisches initialisieren zu erfahren.
Viel Spaß beim austesten!

