Поиск…


Общие массивы

Общие массивы в Котлине представлены Array<T> .

Чтобы создать пустой массив, используйте emptyArray<T>() :

val empty = emptyArray<String>()

Чтобы создать массив с заданным размером и начальными значениями, используйте конструктор:

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

Массивы имеют функции get(index: Int): T и 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"

Массивы примитивов

Эти типы не наследуют от Array<T> чтобы избежать бокса, однако они имеют одинаковые атрибуты и методы.

Тип Котлина Заводская функция Тип 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[]

расширения

average() определяется для Byte , Int , Long , Short , Double , Float и всегда возвращает 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() возвращает элемент массива

getOrNull(index: Int) возвращает значение null, если индекс за пределами границ, иначе элемент массива

first() , last()

toHashSet() возвращает HashSet<T> всех элементов

sortedArray() , sortedArrayDescending() создает и возвращает новый массив с отсортированными элементами текущего

sort() , sortDescending сортировать массив на месте

min() , max()

Итерационный массив

Вы можете распечатать элементы массива , используя цикл такого же , как расширенный цикл Java, но вам нужно изменить ключевое слово от : до in .

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

Вы также можете изменить тип данных для цикла.

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

Создать массив

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

Создание массива с использованием закрытия

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

Создать неинициализированный массив

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

Возвращаемый массив всегда будет иметь тип с нулевым значением. Массивы элементов, не подлежащих обнулению, не могут быть созданы неинициализированными.



Modified text is an extract of the original Stack Overflow Documentation
Лицензировано согласно CC BY-SA 3.0
Не связан с Stack Overflow