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

如何在Kotlin中对两个数组按照相同规则实现同步排序

问题原因

你的代码排序逻辑错误:toSortedMap方法传入的比较器compareByDescending<Double> { list[it] }是使用Map的value作为排序依据,而非你需要的key本身降序排序,因此输出结果不符合预期。

修正后代码

fun main() {
    val letters = arrayOf("one", "two", "three")
    val digits = arrayOf(2.36, 1.1, 3.0)
    val map = mutableMapOf<Double, String>()
    // 直接复用repeat的下标参数,无需额外定义计数变量
    repeat(3) { index ->
        map[digits[index]] = letters[index]
    }
    // 传入按key本身降序的比较器
    val sortedMap = map.toSortedMap(compareByDescending { it })
    // 分别输出排序后的key数组和value数组
    println(sortedMap.keys.toList())
    println(sortedMap.values.toList())
}

运行输出

[3.0, 2.36, 1.1]
[three, one, two]

优化说明

  • 优先使用val声明无需变更的变量,符合Kotlin开发规范
  • 直接使用repeat方法自带的下标参数,避免额外定义全局计数变量降低出错概率

内容的提问来源于stack exchange,提问作者Laba Diena

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.11 15:06:03