Drücke "Enter", um den Text zu überspringen.

Array

Ein Array (Feld) ist eine Datenstruktur, die in der Informatik für die Speicherung von Datensequenzen verwendet wird. 

Statisches eindimensionales Array [ ]

Statische Arrays lassen sich mit Schubladenkästen vergleichen, wobei jede Schublade ein Datenobjekt speichert. Sie werden hauptsächlich zur Speicherung von Listen genutzt. Ihre Größe ist festgelegt, sodass Programmierer den benötigten Speicherplatz im Voraus bestimmen und die Anzahl der zu speichernden Elemente festlegen müssen.. Standardarrays sind indexbasiert, wobei die Indizes in der Regel bei 0 beginnen. Die Größe (Länge) eines Arrays entspricht der Anzahl der enthaltenen Elemente und kann über die Eigenschaft length ermittelt werden. In der Regel enthalten Arrays Werte desselben Datentyps. Im folgenden Beispiel wird ein Array A mit fünf ganzen Zahlen (primitive Datentypeninitialisiert. Es enthält fünf Elemente, die den Indizes 0 bis 4 zugewiesen werden.


******** Pseudocode Zahlen-Array A [10,20,30,40,50] *********

def A[]
A[0] ← 10
A[1] ← 20
A[2] ← 30
A[3] ← 40
A[4] ← 50
A.length = 5

Häufig werden in Arrays Zeichenketten (Strings) gespeichert. Strings sind komplexe Datentypen, da sie aus mehreren Buchstaben (Zeichen) bestehen. Im Beispiel wird A mit drei Wörtern initialisiert,  wobei diese in Anführungszeichen stehen, um als zusammenhängende Strings erkannt zu werden. Durch Angabe der Indexwerte (Indizes) kann auf die Elemente im Array zugegriffen werden. Mit einer For-Schleife können alle Werte des Arrays durchlaufen und verarbeitet werden. Im folgenden Beispiel iteriert die Schleife von 0 bis 2 über alle Strings im Array A und gibt alle drei Wörter der Indizes 0, 1 und 2 aus.


*** Pseudocode durchlaufe String-Array A ["Gurken","Möhren","Zitronen"] ***

def A []
A[0] ← "Gurken"
A[1] ← "Möhren"
A[2] ← "Zitronen"
A.length = 3
For i = 0 to A.length-1 do
output A[i]
End For

Statisches mehrdimensionales Array

Statische mehrdimensionale Arrays kombinierten mehrere Arrays miteinander. 2D-Arrays werden zum Beispiel verwendet, um eine Tabelle mit Zeilen und Spalten zu speichern. Die Zeilen repräsentieren den ersten Index und die Spalten den zweiten Index. 

2D-Array mit 2 Spalten und drei Zeilen
2D-Array mit 2 Spalten und drei Zeilen

******** Pseudocode: Statisches 2D-Array [ ][ ] ********

def A[3][2] // Array mit 3 Zeilen und 2 Spalten
A[0][0] ← 1
A[0][1] ← 2
A[1][0] ← 3
A[1][1] ← 4
A[2][0] ← 5
A[2][1] ← 6

// Ausgabe des Arrays
For i = 0 to 2 do // Durchlaufe 3 Zeilen
For j = 0 to 1 do // Durchlaufe 2 Spalten
output A[i][j] // Gib Element aus
End For
End For

3D-Arrays werden zum Beispiel für 3D-Grafiken verwendet, um Breite, Höhe und Tiefe von Objekten abzubilden. Die erste Index repräsentiert dabei die Ebene, d.h. die Anzahl der übereinanderliegenden 2D-Arrays. Der zweite und dritte Index die Zeilen und Spalten der Tabelle.

3D-Array mit 2 Ebenen, 3 Zeilen und 2 Spalten
3D-Array mit 2 Ebenen, 3 Zeilen und 2 Spalten

******** Pseudocode: Statisches 3D-Array [ ][ ][ ] ********

def A[2][3][2] // Array mit 2 Ebenen, 3 Zeilen und 2 Spalten
A[0][0][0] ← 1
A[0][0][1] ← 2
A[0][1][0] ← 3
A[0][1][1] ← 4
A[0][2][0] ← 5
A[0][2][1] ← 6
A[1][0][0] ← 7
A[1][0][1] ← 8
A[1][1][0] ← 9
A[1][1][1] ← 10
A[1][2][0] ← 11
A[1][2][1] ← 12

For i = 0 to 1 do // Durchlaufe 2 Ebenen
For j = 0 to 2 do // Durchlaufe 3 Zeilen
For k = 0 to 1 do // Durchlaufe 2 Spalten
output A[i][j][k] // Gib Element aus
End For
End For
End For

Dynamisches Array < >

Im Gegensatz zum statischen Array mit fixierter Größe kann die Größe (Länge) bei einem dynamischen während der Programmausführung vergrößert oder verkleinert werden. In vielen Programmiersprache gibt es vorgefertigte Implementierungen wie beispielsweise die Klasse ArrayList in Java. Bei der Initialisierug einer neuen ArrayList kann man beispielsweise die Klasse <Integer> für Zahlen verwenden und die Klasse <String> für Zeichenketten. 

******** Pseudocode: Dynamische ArrayList<Integer> ********

import java.util.ArrayList;


ArrayList<Integer> list = new ArrayList<>();
list.add(10)
list.add(20)
list.add(30)
list.get(0)
list.size()
list.remove(1)
list.clear()

Die Kommentarfunktion ist deaktiviert, aber Trackbacks und Dingbacks sind offen.