Kotlin中函数式编程API(7)✔️排序函数

常用的排序函数有5个,如下:

函数 适用类型 返回数据 说明
sorted 元素是可排序的MutableList
集合或数组
集合或数组自身类型 升序
sortedBy 元素是可排序的MutableList
集合或数组
集合或数组自身类型 指定表达式计算之后再进行升序排序
sortedDescending 元素是可排序的MutableList
集合或数组
集合或数组自身类型 降序
sortedByDescending 元素是可排序的MutableList
集合或数组
集合或数组自身类型 指定表达式计算之后再进行降序排序
reversed 元素是可排序的MutableList
集合或数组
集合或数组自身类型 将原始数据倒置
class Person(val name: String, val age: Int) {
    override fun toString(): String = "[$name, $age]"
}

val people = listOf(
    Person("Tony star", 3),
    Person("Lawrence Li", 3), Person("Tom Chen", 3),
    Person("Alex", 3), Person("Xiao san", 3)
)

fun main(args: Array?) {
    val set = setOf(1, -4, 34, -54, 98)

    // 升序
    println("================= 升序 =================")
    println(set.sorted())
    people.sortedBy { it.name }.forEach { println(it) }

    // 降序
    println("================= 降序 =================")
    println(set.sortedDescending())
    people.sortedByDescending { it.name }.forEach { println(it) }

    // 倒置
    println("================= 倒置 =================")
    println(set.reversed())
}
// 输出结果

2019-06-14 09:46:54.727 I: ================= 升序 =================
2019-06-14 09:46:54.736 I: [-54, -4, 1, 34, 98]
2019-06-14 09:46:54.737 I: [Alex, 3]
2019-06-14 09:46:54.737 I: [Lawrence Li, 3]
2019-06-14 09:46:54.737 I: [Tom Chen, 3]
2019-06-14 09:46:54.737 I: [Tony star, 3]
2019-06-14 09:46:54.737 I: [Xiao san, 3]
2019-06-14 09:46:54.737 I: ================= 降序 =================
2019-06-14 09:46:54.738 I: [98, 34, 1, -4, -54]
2019-06-14 09:46:54.738 I: [Xiao san, 3]
2019-06-14 09:46:54.738 I: [Tony star, 3]
2019-06-14 09:46:54.738 I: [Tom Chen, 3]
2019-06-14 09:46:54.738 I: [Lawrence Li, 3]
2019-06-14 09:46:54.738 I: [Alex, 3]
2019-06-14 09:46:54.738 I: ================= 倒置 =================
2019-06-14 09:46:54.738 I: [98, -54, 34, -4, 1]

你可能感兴趣的:(Kotlin中函数式编程API(7)✔️排序函数)