You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Kotlin中对List元素执行数学运算的正确实现方式?

Kotlin中List元素翻倍的最优实现方式

你的需求最适合用Kotlin集合的**map**扩展函数来实现,这是函数式编程的标准做法,代码更简洁,性能也经过优化,比手动遍历添加高效得多。

示例代码:

fun main() {
    val list1 = listOf<Double>(1.0, 2.0, 3.0, 4.0)
    // 用map生成每个元素翻倍的新List
    val list2 = list1.map { it * 2.0 }
    println(list1) // 输出 [1.0, 2.0, 3.0, 4.0]
    println(list2) // 输出 [2.0, 4.0, 6.0, 8.0]
}

为什么这比手动遍历更好?

  • 代码简洁:一行完成转换逻辑,无需手动初始化可变List和循环添加,可读性更高。
  • 性能优化:map函数是Kotlin标准库实现的,底层对不同集合类型做了针对性优化,大数据量下比手动实现更高效。
  • 不可变性安全:默认返回不可变List(List<T>),符合Kotlin推崇的不可变优先原则,避免意外修改。

如果需要将结果“放回原List”

注意:listOf创建的是不可变List(List<T>),无法直接修改其中的元素。如果想让原变量指向新的结果,可以将原变量声明为var:

fun main() {
    var list = listOf<Double>(1.0, 2.0, 3.0, 4.0)
    // 重新赋值为转换后的新List
    list = list.map { it * 2.0 }
    println(list) // 输出 [2.0, 4.0, 6.0, 8.0]
}

如果一开始就使用可变List(mutableListOf),也可以用replaceAll函数直接修改原列表的元素(无需生成新List):

fun main() {
    val list = mutableListOf<Double>(1.0, 2.0, 3.0, 4.0)
    // 直接修改原列表的每个元素为原来的2倍
    list.replaceAll { it * 2.0 }
    println(list) // 输出 [2.0, 4.0, 6.0, 8.0]
}

这种方式适合需要直接修改原可变列表的场景,避免创建新集合,内存占用更低。

内容的提问来源于stack exchange,提问作者Jeffrey DeLucca

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.24 11:55:23