首页 > 解决方案 > Kotlin 使用另一个数组初始化一个数组

问题描述

我可以像这样在 Kotlin 中初始化一个数组:

val mArr = Array<Int>(5) {0}

我将有以下数组[0,0,0,0,0]

问题是,我需要初始化一个数组并将另一个数组的值放入其中。IE:

initialArray = [1, 4, 5 ,-2, 7] val offset = 5

并且应该得到mArr = [6, 9, 10, 3, 12]

有没有办法mArr[i]根据 each设置 each 的值initialArray[i]

就像是

val mArr = Array<Int>(initialArray.size) { offset + initialArray[index]}

无需将其包装在for loop

标签: arraysindexingkotlininitialization

解决方案


map数组功能。

所以:

val initialArray = arrayOf(1, 4, 5 ,-2, 7)
val offset = 5
val newArray = initialArray.map { it + offset }.toTypedArray()

但是这样你就可以在不修改旧数组的情况下创建新数组。如果要修改旧数组,可以使用forEachIndexed扩展方法:

initialArray.forEachIndexed { index, value ->
    initialArray[index] = initialArray[index] + offset

    // or:
    initialArray[index] = value + offset
}

推荐阅读