Was ist ein Array?
Hiermit bezeichnet man in der Informatik eine bestimmte Datenstruktur (Deutsch: Feld), die eine Liste oder Sammlung von Elementen repräsentiert. Jedes dieser Elemente ist mit einem Index oder Schlüssel zur Identifikation versehen. Die Indexierung startet meist mit 0 und nicht 1 und geht fortlaufend bis zum letzten Element, sodass der letzte Index die Anzahl der Elemente – 1 lautet. Mathematisch sind Felder analog zu Matrizen und Vektoren zu sehen.
Die unterschiedlichen Array-Arten
Man unterscheidet hier grundlegend zwischen zwei Arten dieses Datentyps: statische und dynamische Felder. Während erstere eine fixe Anzahl an Elementen während der Kompilierung und auch in der Anwendung haben, können dynamische Felder hinter her die Anzahl und Art der Elemente beliebig verändern, und zwar in Echtzeit (Dynamic Resizing).
Beide Typen wiederum können dann eindimensional oder zweidimensional sein. Genauer gesagt: ein Array kann eine Liste von Elementen besitzen (eindimensional) und ein Element kann wiederum eine Liste sein (zwei- bis n-dimensional).
Ursprung und Anwendung von Feldern
Arrays gehören zu den ältesten und bis heute wichtigsten Datenstrukturen in der Computertechnik. Auf Basis dieses Datentyps werden komplexere Datenstrukturen wie Strings (Zeichenketten), schnelle Speicherverwaltung oder Listen erst möglich. Um ein bestimmtes Element innerhalb eines solchen Feldes zu erreichen bedient man sich einer Schleife und geht durch das gesamte Feld bis das gesuchte Element gefunden wird. Um den Prozess zu beschleunigen können, je nach Programmiersprache, vorher bestimmte Konditionen angeknüpft werden, z.B. um nur „aktive“ Elemente in die Suche einzubinden. Entscheidend ist in jedem Fall vorher sicherzustellen, dass ein Element auch wirklich in Index X existiert.
Felder sind besonders schnell bei der Suche nach Elementen bzw. der Indexierung. Mit Blick auf den verwandten Datentyp ‚Verkettete Liste‘ ist jedoch das Einfügen und Löschen (hier: O(1)) etwas umfangreicher und damit langsamer (bis auf letztes Element) mit einer Laufzeit von O(n). Nur hinsichtlich des exakt genutzten Speichers hat das statische Feld die Nase vorn (O(1)) während eine
‚Verkette Liste‘ und ein ‚Dynamisches Array‘ eine Laufzeit von O(n) bieten.