Ähnlich wie in anderen Programmiersprachen bieten Arrays in Kotlin die Möglichkeit, eine geordnete Sammlung von Elementen desselben Datentyps zu speichern und zu verwalten, beispielsweise eine Liste von Zahlen, Zeichen oder Objekten. Sie ermöglichen eine strukturierte und organisierte Speicherung von Daten sowie einen effizienten Zugriff auf einzelne Elemente über einen Index. Arrays werden in vielen Anwendungsfällen eingesetzt, von einfachen Listen über Tabellen bis hin zu komplexeren mehrdimensionalen Datenstrukturen. In Kotlin sind Arrays Objekte, die den speziell entwickelten Datentyp Array haben.

Die Haupteigenschaften von Arrays in Kotlin sind:

Gleicher Datentyp von beinhalteten Elementen: Das bedeutet, dass alle Objekte innerhalb eines Arrays den gleichen Datentyp haben müssen. Zum Beispiel nur Int, String oder Double etc., beispielsweise eine Kombination aus Int und String würde zu einem Programmfehler führen.

Um den Datentyp für die Elemente innerhalb eines Arrays vorzugeben, wird bei der Deklaration eines Arrays in spitzen Klammern nach dem Array-Typ der Typ von beinhalteten Objekten angegeben. Im folgenden Beispiel wird ein Array von Int-Werten erstellt:

Im nächsten Schritt wird mithilfe der integrierten Funktion arrayOf() eine Reihe von Int-Werten an Array übergeben:

Indizierte Elemente: Die Elemente in einem Array sind indiziert, d.h. sie haben eine bestimmte Position innerhalb des Arrays, auf die über den zugeordneten Index zugegriffen werden kann. Die Indexierung von Arrays beginnt bei 0, d.h. das erste Element hat den Index 0, das zweite Element den Index 1, das dritte den Index 2 und so weiter.  Der Index wird in eckigen Klammern angegeben. Schauen wir unser vorheriges Beispiel an:

Feste Größe: Arrays haben eine feste Größe, die bei der Erstellung festgelegt wird. Nach der Erstellung kann die Größe eines Arrays nicht mehr verändert werden. Im nachstehenden Beispiel versuchen wir ein zusätzliches Element mit Index 5 in das Array hinzufügen:

Für die Erstellung eines Arrays in Kotlin kann man auch den Konstruktor der Klasse Array nutzen, welcher zwei Parameter annimmt. Der erste Parameter gibt die Größe des Arrays an, während der zweite Parameter das Initialisierungslambda enthält. Das Initialisierungslambda ist ein Ausdruck, welcher für jedes Element des Arrays ausgeführt wird und den initialen Wert für das jeweilige Element berechnet.

Das Initialisierungslambda kann auch komplexere Ausdrücke beinhalten und somit anspruchsvollere Berechnungen ausführen.

Iteration über Arrays in Kotlin

In Kotlin kann man Arrays auf verschiedene Weise durchlaufen und auf deren Elemente zugreifen. Eine Möglichkeit besteht darin, eine for-Schleife zu verwenden. Beispiel:

Eine weitere Möglichkeit besteht darin, im Rahmen einer for-Schleife den Index als Laufvariable zu verwenden, um die Elemente eines Arrays nacheinander zu durchlaufen.

Eine schlanke Alternative ist die Verwendung der forEach()-Funktion, die für jedes Element im Array eine Aktion ausführt.

Die Funktion forEach führt den angegebenen Lambdaausdruck (Lambdafunktion) für jedes Element des Arrays auf, wobei jedes Element als Argument an den Lambdausdruck übergeben wird. Das Wort it in der Lambda-Funktion steht für das aktuelle Element, auf das die Aktion innerhalb der Funktion angewendet wird.

Bemerkung: Das Schlüsselwort it steht in Kotlin für einen impliziten Namen des einzelnen Parameters in einer Lambda-Funktion. Wenn eine Lambda-Funktion einen einzigen Parameter hat, kann der Parametername weggelassen werden und stattdessen das implizite it  verwendet werden.

Überprüfen, ob ein Element in einem Array vorhanden ist

Nehmen wir mal an, wir haben die Aufgabe ein Array auf Vorhandensein des Namens „Jerry“ zu überprüfen. Dafür haben wir zwei Optionen. Option Nummer 1 ist die Verwendung des in-Operators:

Es ist auch möglich, eine Schleife zu verwenden, um alle Elemente des Arrays nacheinander zu durchlaufen und zu überprüfen, ob jedes Element dem gesuchten Element entspricht. Beispiel:

Spezielle Funktionen für Initialisierung von Arrays für primitive Datentypen

In Kotlin gibt es für jeden primitiven Datentyp einen speziellen Array-Typ. Dazu gehören BooleanArray, ByteArray, ShortArray, IntArray, LongArray, CharArray, FloatArray und DoubleArray. Diese speziellen Array-Typen ermöglichen die Erstellung von Arrays für den jeweiligen Datentyp, was die Handhabung und Verarbeitung von Daten erleichtert.

Die Initialisierung dieser Arrays kann entweder durch eine explizite Zuweisung von Werten erfolgen, wie in obigen Beispielen, oder durch die Verwendung von Konstruktoren, die für die speziellen Array-Typen definiert sind.

Multidimensionale Arrays

Zuvor haben wir ausschließlich eindimensionale Arrays betrachtet, die man sich als eine Folge oder eine Zeile von Werten vorstellen kann. 

In der Softwareentwicklung gibt es jedoch mehrere Anwendungsfälle, bei denen die Darstellung und Verarbeitung komplexerer, mehrdimensionaler Datenstrukturen erforderlich ist. Einige der häufigsten und bekanntesten Nutzungsszenarien für multidimensionale Datenorganisation sind: Abbildung von Tabellen und Matrizen mit Zahlen zur Durchführung von Berechnungen oder Darstellung von Pixelwerten in Bildern sowie Volumenwerten in 3D-Modellen. Zur Speicherung und Verarbeitung solcher Datenstrukturen in Kotlin werden multidimensionale Arrays verwendet.

Multidimensionale Arrays in Kotlin sind Datenstrukturen, die aus verschachtelten Arrays bestehen und Daten in mehreren Dimensionen oder Ebenen organisieren. Sie können als Arrays von Arrays betrachtet werden.

Ein zweidimensionales Array (2D-Array) ist beispielweise wie eine Tabelle, in der Daten in Zeilen und Spalten angeordnet sind.

Mit Hilfe von zwei ineinander geschachtelten Schleifen ist es auch möglich, zweidimensionale Arrays durchzulaufen.

Ein dreidimensionales Array (3D-Array) ist wie ein Stapel von Tabellen übereinander und kann durch Verschachtelung eines Arrays von 2D-Arrays erstellt werden. 

In den obigen Beispielen wurden 2D- und 3D-Arrays erstellt und mit Werten gefüllt. Beachte, dass diese Beispiele Arrays mit fester Größe verwenden, aber man kann auch ArrayLists verwenden, um dynamische, multidimensionale Arrays zu erstellen. Dieses Thema werden wir im weiteren Verlauf des Tutorials detailliert betrachten.

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert