Arrays in Kotlin initialisieren

1. Übersicht

In diesem kurzen Tutorial sehen wir uns an, wie wir ein Array in Kotlin initialisieren können.

2. arrayOf Library-Methode

Kotlin verfügt über eine integrierte arrayOf- Methode, die die angegebenen Aufzählungswerte in ein Array des angegebenen Typs konvertiert:

val strings = arrayOf("January", "February", "March")

3. Primitive Arrays

Wir können auch die arrayOf- Methode mit primitiven Werten verwenden.

Kotlin wird die primitiven Werte jedoch automatisch in die entsprechenden Objekt-Wrapper-Klassen einbinden, was sich nachteilig auf die Leistung auswirkt. Um diesen Overhead zu vermeiden, bietet Kotlin eine breite Unterstützung für primitive Arrays. Es gibt dedizierte arrayOf- Methoden für die folgenden Typen: double, float, long, int, char, short, byte, boolean.

Wir können ein primitives int-Array einfach mit seiner dedizierten arrayOf- Methode initialisieren :

val integers = intArrayOf(1, 2, 3, 4)

4. Späte Initialisierung mit Indizes

Manchmal möchten wir die Werte des Arrays bei der Instanziierung nicht definieren. In diesem Fall können wir ein Array von Nullwerten erstellen .

Nach der Instanziierung können wir auf die Felder des Arrays zugreifen und diese festlegen. Es gibt mehrere Möglichkeiten , dies zu tun, aber ein gemeinsamer Weg ist Kotlin zu gebrauchen Indizes Eigenschaft . Diese Eigenschaft gibt einen Bereich gültiger Indizes für das Array zurück. Wir können den Bereich verwenden, um auf die Werte des Arrays in einer for- Schleife zuzugreifen und diese festzulegen.

Initialisieren wir unser Array mit quadratischen Zahlen mit diesem Ansatz:

val array = arrayOfNulls(5) for (i in array.indices) { array[i] = i * i }

5. Generieren von Werten mit einem Initialisierer

Primitive Arrays und Objektarrays verfügen beide über Konstruktoren, die eine Initialisierungsfunktion als zweiten Parameter akzeptieren . Diese Initialisierungsfunktion verwendet den Index als Eingabeparameter, übersetzt ihn mithilfe der Funktion in den entsprechenden Wert und fügt ihn in das Array ein.

Wir können ein Array mit quadratischen Zahlen in einer Zeile initialisieren:

val generatedArray = IntArray(10) { i -> i * i }

Wie bereits erwähnt, ist diese Art von Konstruktor auch für Objektarrays verfügbar:

val generatedStringArray = Array(10) { i -> "Number of index: $i" }

6. Fazit

In diesem Tutorial haben wir gesehen, wie Arrays in Kotlin initialisiert werden. Wir haben das breite Spektrum an Unterstützung für primitive Arrays entdeckt. Wir haben auch beobachtet, wie wir den Array-Konstruktor mit einer Initialisierungsfunktion verwenden können, um präzisen Code zu schreiben.

Wie immer ist der Code auf GitHub verfügbar.