Kotlin 集合对象的单条件和多条件排序
本文为作者原创,允许转载,不过请在文章开头明显处注明链接和出处!!! 谢谢配合~
作者:stars-one
链接:https://www.cnblogs.com/stars-one/p/17481055.html
本篇大约有1191个字,阅读预计需要1.49分钟
原文: Kotlin 集合对象的单条件和多条件排序 - Stars-One的杂货小窝
本文不是太难的东西,因为sortedWith
之前没怎么用过,所以就记录下
平常开发经常使用到List,Map等数据集合类型,也会经常遇到排序的问题,可以直接使用sortedBy
或sortedByDescending
排序
多条件则是使用sortedWith
,具体使用用例看见下文
单条件排序
方便起见,我们创建一个类Author
,用来保存数据
data class Author(val name:String,val age:Int,val height:Int)
val authorList = listOf(
Author("John", 30, 175),
Author("Alice", 25, 165),
Author("Bob", 25, 180),
Author("John1", 25, 180),
Author("Alice1", 30, 170)
)
authorList.sortedByDescending {
it.age
}
多条件排序
实际上,kotlin里提供了compareBy方法,方便开发者快速创建一个比较器的对象
val personList = listOf(
Person("John", 30, 175),
Person("Alice", 25, 165),
Person("Bob", 25, 180),
Person("John", 25, 180),
Person("Alice", 30, 170)
)
val sortedList = personList.sortedWith(compareBy(
{ it.name }, // 按姓名升序
{ -it.age }, // 按年龄降序
{ it.height } // 按身高升序
))
sortedList.forEach { println(it) }
compareBy
方法介绍:
compareBy 是 Kotlin 标准库提供的一个函数,它可以帮助我们创建排序条件。该函数接收一个或多个 lambda 表达式,每个 lambda 表示一个排序条件。
compareBy 函数的返回值是一个 Comparator 对象,可以用于对集合中的元素进行排序。使用这个函数的好处是,可以将多个排序条件组合在一起,并且可以方便地扩展排序条件,而不必改变排序算法的实现。
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】凌霞软件回馈社区,博客园 & 1Panel & Halo 联合会员上线
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】博客园社区专享云产品让利特惠,阿里云新客6.5折上折
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 【.NET】调用本地 Deepseek 模型
· CSnakes vs Python.NET:高效嵌入与灵活互通的跨语言方案对比
· DeepSeek “源神”启动!「GitHub 热点速览」
· Plotly.NET 一个为 .NET 打造的强大开源交互式图表库
· 我与微信审核的“相爱相杀”看个人小程序副业