在Java中,数组可以这样初始化:

int numbers[] = new int[] {10, 20, 30, 40, 50}

Kotlin的数组初始化是怎样的?


当前回答

对于二维数组:

val rows = 3
val cols = 3
val value = 0
val array = Array(rows) { Array<Int>(cols) { value } }

您可以将元素类型更改为您想要的任何类型(String, Class,…),并将值更改为相应的默认值。

其他回答

你也可以使用ArrayList来填充,然后返回一个数组。 方法将在列表中添加10,000个Item类型的元素,然后返回一个Item数组。

private fun populateArray(): Array<Item> {
    val mutableArray = ArrayList<Item>()
    for (i in 1..10_000) {
        mutableArray.add(Item("Item Number $i" ))
    }
    return mutableArray.toTypedArray()
}

Item数据类看起来像这样:

data class Item(val textView: String)

这里有一个例子:

fun main(args: Array<String>) {
    val arr = arrayOf(1, 2, 3);
    for (item in arr) {
        println(item);
    }
}

您还可以使用游乐场来测试语言特性。

这个问题已经有了很好的答案。 这里是一个合并的创建int数组。

创建具有特定值的数组。 var arr = intArrayOf(12,2,21,43,23) var arr = arrayOf<Int>(12,2,21,43,23)

[12, 2, 21, 43, 23]

填充特定元素。这里是1。 var arr = IntArray(5).apply{fill(1)} val arr = IntArray(5){1}

[1, 1, 1, 1, 1]

用小于20的随机数填充大小为5的数组 val arr = IntArray(5) {Random.nextInt(20)}

[0, 2, 18, 3, 12]

根据位置填充数组元素。 这个数组是5的倍数。 val arr = IntArray(5) {i -> (i + 1) * 5}

[5, 10, 15, 20, 25]

对于二维数组:

val rows = 3
val cols = 3
val value = 0
val array = Array(rows) { Array<Int>(cols) { value } }

您可以将元素类型更改为您想要的任何类型(String, Class,…),并将值更改为相应的默认值。

我的回答补充了@maroun,这些是初始化数组的一些方法:

使用数组

val numbers = arrayOf(1,2,3,4,5)

使用严格的数组

val numbers = intArrayOf(1,2,3,4,5)

混合矩阵类型

val numbers = arrayOf(1,2,3.0,4f)

嵌套数组

val numbersInitials = intArrayOf(1,2,3,4,5)
val numbers = arrayOf(numbersInitials, arrayOf(6,7,8,9,10))

能够从动态代码开始

val numbers = Array(5){ it*2}