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.