Szukaj…


Ogólne tablice

Ogólne tablice w Kotlin są reprezentowane przez Array<T> .

Aby utworzyć pustą tablicę, użyj funkcji fabrycznej emptyArray<T>() :

val empty = emptyArray<String>()

Aby utworzyć tablicę o podanym rozmiarze i wartościach początkowych, użyj konstruktora:

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

Tablice mają funkcje get(index: Int): T i set(index: Int, value: T) :

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

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

Tablice prymitywów

Te typy nie dziedziczą z Array<T> aby uniknąć bokowania, jednak mają te same atrybuty i metody.

Typ Kotlina Funkcja fabryczna Typ JVM
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[]

Rozszerzenia

average() jest zdefiniowany dla Byte , Int , Long , Short , Double , Float i zawsze zwraca 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() zwraca element tablicy

getOrNull(index: Int) zwraca null, jeśli indeks jest poza zakresem, w przeciwnym razie element tablicy

first() , last()

toHashSet() zwraca HashSet<T> wszystkich elementów

sortedArray() , sortedArrayDescending() tworzy i zwraca nową tablicę z posortowanymi elementami prądu

sort() , sortDescending posortuj tablicę w miejscu

min() , max()

Iterate Array

Możesz wydrukować elementy tablicy za pomocą tej samej pętli, co ulepszona pętla Java, ale musisz zmienić słowo kluczowe z : na in .

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

Możesz także zmienić typ danych w pętli for.

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

Utwórz tablicę

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

Utwórz tablicę za pomocą zamknięcia

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

Utwórz niezainicjowaną tablicę

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

Zwracana tablica zawsze będzie miała typ zerowy. Tablic przedmiotów, które nie dopuszczają wartości zerowych, nie można utworzyć bez zainicjowania.



Modified text is an extract of the original Stack Overflow Documentation
Licencjonowany na podstawie CC BY-SA 3.0
Nie związany z Stack Overflow