如何在Kotlin中使用sortedBy对二维整型数组进行排序?

eimct9ow  于 2022-11-30  发布在  Kotlin
关注(0)|答案(1)|浏览(278)

Kotlin新闻只停留在一些基本的东西上
我有一个二维数组:

val intervals: Array<IntArray> = arrayOf(
    intArrayOf(1, 3),
    intArrayOf(15, 18),
    intArrayOf(8, 10),
    intArrayOf(2, 6),
)

如何根据每个子数组的第一个元素排序。
输出应为:(1、3);(2、6);(8、10);(15、18)
我试过这个,但我不清楚语法,没有工作。

intervals.sortedBy { it[0] }

谢谢你,谢谢你。

py49o6xq

py49o6xq1#

当然,如果你不知道你的数组的值,并且它可能有一个0元素的内部数组,那么你也应该检查一下。
我认为你认为它不起作用的原因是因为你希望它能在适当的位置排序。有两种不同的方法可以使用:sortBy {}sortedBy{}。第一个对初始数组进行排序,第二个返回一个新的排序列表。
至于不理解语法,我建议阅读the docs(这也显示了这两个函数之间的区别)。但是为了让它更容易理解,您可以将其命名为it参数。

//this creates a new list
val newList = intervals.sortedBy { internalArray -> internalArray.first() }

//this sorts the given array
intervals.sortBy { internalArray -> internalArray.first() }

相关问题