Kotlin 集合对象的单条件和多条件排序

这篇具有很好参考价值的文章主要介绍了Kotlin 集合对象的单条件和多条件排序。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

原文: Kotlin 集合对象的单条件和多条件排序 - Stars-One的杂货小窝

本文不是太难的东西,因为sortedWith之前没怎么用过,所以就记录下

平常开发经常使用到List,Map等数据集合类型,也会经常遇到排序的问题,可以直接使用sortedBysortedByDescending排序

多条件则是使用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 对象,可以用于对集合中的元素进行排序。使用这个函数的好处是,可以将多个排序条件组合在一起,并且可以方便地扩展排序条件,而不必改变排序算法的实现。文章来源地址https://www.toymoban.com/news/detail-482697.html

到了这里,关于Kotlin 集合对象的单条件和多条件排序的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • Comparator.comparing嵌套对象倒序以及多重条件排序

    描述:对象A内部封装对象B,根据B的字段做倒排 描述:如:先按照年龄正序,同年龄按照体重倒序。

    2024年02月16日
    浏览(35)
  • Java中List对象集合按照对象中某字段进行排序

    在Java中,可以使用List集合对象的sort(Comparator? super E c)方法,按照对象中某字段对List集合进行排序 栗子: 打印输出结果如下:

    2024年02月12日
    浏览(45)
  • 【Redis】高级篇: 一篇文章讲清楚Redis的单线程和多线程

    目录 面试题 Redis到底是多线程还是单线程? 简单回答 详解 Redis的“单线程” Redis为什么选择单线程? 后来Redis为什么又逐渐加入了多线程特性? Redis为什么快? 回答 IO多路复用 Unix网络编程的5种IO模型 主线程和IO线程怎么协作完成请求处理的 四个阶段 浅谈IO多路复用 文件

    2024年02月15日
    浏览(29)
  • kotlin实现java的单例模式

    Kotlin的5种单例模式

    2024年02月10日
    浏览(28)
  • Elasticsearch多层嵌套nested查询和多条件聚合aggregations

     当在aggregations中使用嵌套多条件,需要用bool包起来,如果直接在filters[]里写,将会分多个桶,分别按单个条件统计;  部分片段截取: 当需要将多层嵌套nested用多个条件AND起来时: 全部片段: Elasticsearch 多层嵌套nested 多条件聚合aggregations

    2024年02月16日
    浏览(38)
  • 面向对象中的单例模式

    设计模式就是前人根据实际的问题提出的问题解决方案,我们把这种就称之为设计模式。 单例模式是一种常见的设计模式! 所谓的设计模式,不是一种新的语法,而是人们在实际的应用中,面对某种特定的情形而设计出来的某种常见的有效的解决方案,所以,设计模式只是

    2024年02月05日
    浏览(37)
  • 全局单身汉:深入理解 Python 中的单例对象

    项目 描述 搜索引擎 Google 、Bing Python 官方文档 项目 描述 Python 解释器 3.10.6 单例对象 在 Python 中,单例对象是一种设计模式,旨在确保在应用程序中只有一个特定类的实例。这意味着无论创建多少个该类的实例,都将始终引用相同的实例。 单例对象的优缺点 单例对象的优点

    2024年02月02日
    浏览(35)
  • Kotlin中的集合操作

    Kotlin 在集合操作上提供了一系列的扩展函数,使其变得非常强大且易于使用。以下是一些在Kotlin中常用的集合操作API,以及如何使用它们的示例: 1. Filtering (过滤) ​ 使用 filter 函数来过滤集合中符合条件的元素。 2. Transforming (转换) ​ 使用 map 函数能够将集合中的元素进行

    2024年01月18日
    浏览(34)
  • 学习Kotlin~集合

    List集合 只读和可变 可变运算 集合遍历 解构 Set集合 Array数组 Map集合

    2024年02月11日
    浏览(35)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包