【问题标题】:how to add two arrays in Kotlin Data Structures如何在 Kotlin 数据结构中添加两个数组
【发布时间】:2021-05-23 11:03:09
【问题描述】:

我是 Kotlin 初学者,我正在尝试解决 leetcode 练习,我有一个问题。

例如

val numbers = intArray(1, 2, 3)
val numbers2 = intArray(4, 5, 6)

在帮助下生成循环,获取

val number2 = intArray(5,7,9)

不是这个val number2 = intArray(1,2,3,4,5,6)

【问题讨论】:

  • 4 人已经查看了我的问题,没有人无法回答??还是你不希望??
  • 没有人有义务回答任何问题,更不用说在提出问题的 7 分钟内!

标签: kotlin data-structures


【解决方案1】:

您可以使用zip() 将两个数组组合成List<Pair<Int, Int>>,然后使用map() 计算总和:

fun main() {
    val numbers = intArrayOf(1, 2, 3)
    val numbers2 = intArrayOf(4, 5, 6)
    val sum = numbers.zip(numbers2).map { (a, b) -> a + b }
    println(sum.joinToString(", "))
}

输出:

5, 7, 9

以上可能是最 Kotlin 的做法。但是如果你真的想产生一个数组并使用循环,你可以这样做:

fun main() {
    val numbers = intArrayOf(1, 2, 3)
    val numbers2 = intArrayOf(4, 5, 6)
    val sum = IntArray(numbers.size)

    for (i in numbers.indices)
        sum[i] = numbers[i] + numbers2[i]

    println(sum.joinToString(", "))
}

输出:

5, 7, 9

但是,您可以通过向 IntArray 构造函数提供 lambda 直接生成数组而无需循环:

fun main() {
    val numbers = intArrayOf(1, 2, 3)
    val numbers2 = intArrayOf(4, 5, 6)
    val sum = IntArray(numbers.size) { numbers[it] + numbers2[it] }
    println(sum.joinToString(", "))
}

输出:

5, 7, 9

【讨论】:

    猜你喜欢
    • 2020-05-02
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多