在Java中,数组可以这样初始化:
int numbers[] = new int[] {10, 20, 30, 40, 50}
Kotlin的数组初始化是怎样的?
在Java中,数组可以这样初始化:
int numbers[] = new int[] {10, 20, 30, 40, 50}
Kotlin的数组初始化是怎样的?
当前回答
这个问题已经有了很好的答案。 这里是一个合并的创建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]
其他回答
值得一提的是,当使用kotlin内置程序(例如intArrayOf(), longArrayOf(), arrayOf()等)时,对于给定的大小,您不能使用默认值(或所有值为所需值)初始化数组,相反,您需要通过根据类构造函数调用来进行初始化。
// Array of integers of a size of N
val arr = IntArray(N)
// Array of integers of a size of N initialized with a default value of 2
val arr = IntArray(N) { i -> 2 }
老问题了,但如果你想使用一个范围:
var numbers: IntArray = IntRange(10, 50).step(10).toList().toIntArray()
产生几乎相同的结果:
var numbers = Array(5, { i -> i*10 + 10 })
结果:10,20,30,40,50
我认为第一个选项更有可读性。这两个工作。
在Kotlin中,我们可以使用arrayOf(), intArrayOf(), charArrayOf(), booleanArrayOf(), longArrayOf()函数来创建数组。
例如:
var Arr1 = arrayOf(1,10,4,6,15)
var Arr2 = arrayOf<Int>(1,10,4,6,15)
var Arr3 = arrayOf<String>("Surat","Mumbai","Rajkot")
var Arr4 = arrayOf(1,10,4, "Ajay","Prakesh")
var Arr5: IntArray = intArrayOf(5,10,15,20)
你可以这样做:
val numbers = intArrayOf(10, 20, 30, 40, 50)
or
val numbers = arrayOf<Int>(10, 20, 30, 40, 50)
also
val numbers = arrayOf(10, 20, 30, 40, 50)
你也可以使用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)