
集合
|
103
类(非数据类),也可以手动定义任何所需要的 component 方法。
解构是从对象中提取多个元素的便捷方法。目前,List 类为前5 个元素定义了
component 函数。但这也许会在之后的 Kotlin 版本中发生改变。
5.9
将多个属性排序
问题
如何按第一个属性对一个类的对象进行排序,然后对第一个属性相同的对象按第二个属
性进行排序,以此类推。
解决方案
使用 sortedWith 函数与 compareBy 函数。
讨论
假设我们有一个名为 Golfer(高尔夫球手)的简单数据类,示例 5-24 中展示了一个简
单的集合。
示例 5-24:一个数据类以及一些简单的数据
data class Golfer(val score: Int, val first: String, val last: String)
val golfers = listOf(
Golfer(70, "Jack", "Nicklaus"),
Golfer(68, "Tom", "Watson"),
Golfer(68, "Bubba", "Watson"),
Golfer(70, "Tiger", "Woods"),
Golfer(68, "Ty", "Webb")
)
如果你想将这些高尔夫球手依据得分(score)来进行排序,然后使用姓氏(last name)
对得分相同的高尔夫球手进行排序,最后使用名字(first name)对得分与姓氏均相同的
高尔夫球手进行排序,可以使用示例 5-25 中的代码。
示例 ...