sortedDescending()和sortedByDescending()有什么区别?

时间:2019-06-12 23:16:30

标签: kotlin collections

在此代码段中,

fun getList(): List<Int> {
    return arrayListOf(1, 5, 2).sortedDescending()
}

我为什么不能

fun getList(): List<Int> {
    return arrayListOf(1, 5, 2).sortedByDescending()
}

相反?

如果我将错误的方法应用于该ArrayList,sortedByDescending()的正确用法将是什么样?

2 个答案:

答案 0 :(得分:2)

最简单的思考方法是将sortDescending()应用于元素的 ArrayList,例如整数或字符串,而将sortByDescending()应用于元素的 ArrayList具有我们希望排序的属性的元素

示例: 在此代码块中,您只是在对整数列表进行排序。

fun getList(): List<Int> {
    return arrayListOf(1, 5, 2).sortedDescending()
}

在下一行代码中,sortByDescending() 要求我们传递一个参数,表示要作为排序依据的属性。

fun getList(): List<Object> {
    val list = ArrayList<CustomObject>()
    list.add(CustomObject("Z"))
    list.add(CustomObject("A"))
    list.add(CustomObject("B"))

    return list.sortedByDescending(object.property)
}

This 是全面排序信息的良好来源。

答案 1 :(得分:1)

看这里:https://kotlinlang.org/api/latest/jvm/stdlib/kotlin.collections/index.html

单击功能以浏览更多详细信息。