Suche…


Generische Arrays

Generische Arrays in Kotlin werden durch Array<T> .

Um ein leeres Array zu erstellen, verwenden emptyArray<T>() Factory-Funktion emptyArray<T>() :

val empty = emptyArray<String>()

Verwenden Sie den Konstruktor, um ein Array mit gegebener Größe und Anfangswerten zu erstellen:

var strings = Array<String>(size = 5, init = { index -> "Item #$index" })
print(Arrays.toString(a)) // prints "[Item #0, Item #1, Item #2, Item #3, Item #4]"
print(a.size) // prints 5

Arrays haben get(index: Int): T und set(index: Int, value: T) Funktionen:

strings.set(2, "ChangedItem")
print(strings.get(2)) // prints "ChangedItem"

// You can use subscription as well:
strings[2] = "ChangedItem"
print(strings[2]) // prints "ChangedItem"

Arrays von Primitiven

Diese Typen erben nicht von Array<T> , um Boxen zu vermeiden, sie haben jedoch dieselben Attribute und Methoden.

Kotlin-Typ Werksfunktion JVM-Typ
BooleanArray booleanArrayOf(true, false) boolean[]
ByteArray byteArrayOf(1, 2, 3) byte[]
CharArray charArrayOf('a', 'b', 'c') char[]
DoubleArray doubleArrayOf(1.2, 5.0) double[]
FloatArray floatArrayOf(1.2, 5.0) float[]
IntArray intArrayOf(1, 2, 3) int[]
LongArray longArrayOf(1, 2, 3) long[]
ShortArray shortArrayOf(1, 2, 3) short[]

Erweiterungen

average() ist für Byte , Int , Long , Short , Double und Float und liefert immer Double :

val doubles = doubleArrayOf(1.5, 3.0)
print(doubles.average()) // prints 2.25

val ints = intArrayOf(1, 4)
println(ints.average()) // prints 2.5

component1() , component2() , ... component5() ein Element des Arrays zurück

getOrNull(index: Int) gibt null zurück, wenn der Index außerhalb der Grenzen liegt, andernfalls ein Element des Arrays

first() , last()

toHashSet() gibt ein HashSet<T> aller Elemente zurück

sortedArray() , sortedArrayDescending() erstellt ein neues Array mit sortierten Elementen des aktuellen und gibt dieses zurück

sort() , sortDescending sortiert das Array an Ort und Stelle

min() , max()

Array iterieren

Sie können die Array-Elemente mit der Schleife wie bei der erweiterten Java-Schleife drucken. Sie müssen jedoch das Schlüsselwort von : in in ändern.

val asc = Array(5, { i -> (i * i).toString() })
for(s : String in asc){
    println(s);
}

Sie können den Datentyp auch in der Schleife ändern.

val asc = Array(5, { i -> (i * i).toString() })
for(s in asc){
    println(s);
}

Erstellen Sie ein Array

val a = arrayOf(1, 2, 3) // creates an Array<Int> of size 3 containing [1, 2, 3].

Erstellen Sie ein Array mit einem Abschluss

val a = Array(3) { i -> i * 2 } // creates an Array<Int> of size 3 containing [0, 2, 4]

Erstellen Sie ein nicht initialisiertes Array

val a = arrayOfNulls<Int>(3) // creates an Array<Int?> of [null, null, null]

Das zurückgegebene Array hat immer einen nullfähigen Typ. Arrays von nicht nullfähigen Objekten können nicht ohne Initialisierung erstellt werden.



Modified text is an extract of the original Stack Overflow Documentation
Lizenziert unter CC BY-SA 3.0
Nicht angeschlossen an Stack Overflow