Java8对多个字段排序

创建User对象

public class Users {

private Long id;

private String name;

private String code;

private Long supId;

private List usersList;

public Users() {

}

public Users(Long id, String name, String code, Long supId) {

this.id = id;

this.name = name;

this.code = code;

this.supId = supId;

}

}

编写测试类

public class Demo01 {

List usersList = new ArrayList<>();

@Before

public void generateData() {

usersList.add(new Users(1l, "张三", "20", 0L));

usersList.add(new Users(2l, "李四1", "22", 1L));

usersList.add(new Users(4l, "王五1", "20", 2L));

usersList.add(new Users(3l, "李四2", "20", 1L));

usersList.add(new Users(6l, "王五3", "22", 2L));

usersList.add(new Users(5l, "王五2", "21", 2L));

usersList.add(new Users(7l, "王五4", "23", 2L));

}

@Test

public void demo1() {

List collect = usersList.stream().sorted(Comparator.comparing(Users::getSupId).thenComparing(Users::getCode)).collect(Collectors.toList());

for (Users users : collect) {

System.out.println(users);

}

}

}

以上代码含义是:通过supId字段进行排序,如果supId相同则按照code字段排序。结果集:

Users{id=1, name=‘张三‘, code=‘20‘, supId=0}

Users{id=3, name=‘李四2‘, code=‘20‘, supId=1}

Users{id=2, name=‘李四1‘, code=‘22‘, supId=1}

Users{id=4, name=‘王五1‘, code=‘20‘, supId=2}

Users{id=5, name=‘王五2‘, code=‘21‘, supId=2}

Users{id=6, name=‘王五3‘, code=‘22‘, supId=2}

Users{id=7, name=‘王五4‘, code=‘23‘, supId=2}

Java8对多个字段排序

java多字段排序,Java8对多个字段排序相关推荐

  1. java对list中map集合中某个字段排序

    java对list中map集合中某个字段排序 适用于字符串排序,数字对比不可用,以下示例,当把sort的值改为74,66,142时排序不对看示例2 示例1 List<Map<String, ...

  2. java动态字段排序_Java8对多个字段排序

    Java8对多个字段排序 创建User对象 public class Users { private Long id; private String name; private String code ...

  3. Java之项目用到类Objects,TreeMap排序简单分享

    开心一笑 [记者去采访一山区百岁老农: "老人家,你是吃什么东西才能保持长寿的啊?" 百岁老农: "我们这只能种玉米,平时也是以玉米为主食." 记者: &quo ...

  4. 【读书笔记】《写给大忙人看的Java SE 8》——Java8新特性总结

    2019独角兽企业重金招聘Python工程师标准>>> 阅读目录 接口中的默认方法和静态方法 函数式接口和Lambda表达式 Stream API 新的日期和时间 API 杂项改进 ...

  5. java拼音搜索排序算法_Java汉字按照拼音排序

    最近项目上使用到汉字排序的问题,网上搜索了一下后普遍使用下面的方法比较. @Test public void test_sort_pinyin() { Collator cmp = Collator. ...

  6. MYSQL order by 将排序结果赋值到某个字段

    今天接到了一个需求,需要将表数据按照创建时间create_time排序,然后把排序结果赋值给新增字段order_no sql如下: 新增字段: alter table product add colu ...

  7. Java8如何对Stream进行排序操作呢?

    转自: Java8如何对Stream进行排序操作呢? 下文讲述Java8中对Stream进行排序操作的方法分享,如下所示: 实现思路:使用sorted()即可实现对Stream进行排序操作 如:sor ...

  8. java排序为什么会出现多次排序结果不一样_并发理论基础:指令重排序问题

    为什么需要对指令进行重排序? 其实说到底都是源于对性能的优化,CPU运行效率 相比缓存.内存.硬盘IO之间效率有着指数级的差别,CPU作为系统的宝贵资源,那么如何更好的优化和利用这个资源就能提升整个计 ...

  9. java 插入排序_看动画学算法之:排序-插入排序

    简介 插入排序就是将要排序的元素插入到已经排序的数组中,从而形成一个新的排好序的数组. 这个算法就叫做插入排序. 插入排序的例子 同样的,假如我们有一个数组:29,10,14,37,20,25,44, ...

最新文章

  1. django框架之自定义重定向页面
  2. VerifyError: Error #1107: ABC 数据已损坏,尝试的读取操作超出范围
  3. 安装jupyter后,使用时显示找不到命令(command not found)
  4. win7 修复计算机 黑屏,boot bcd修复win7 旗舰版系统黑屏错误代码0xc0000034的解决方法...
  5. Python爬虫之Scrapy框架使用selenium
  6. python和matlab交互_MATLAB调用python,交互
  7. 补发《超级迷宫》站立会议三
  8. erlang开发环境配置
  9. php开发视频播放顺序,请问关于php代码运行顺序问题
  10. Python基础案例练习:掷骰子小游戏
  11. axios下载图片 node_vue+node.js手把手教你搭建一个直播平台(二)
  12. jq 目录树ajax,javascript
  13. 华为Code Craft 2020 + ZTE 中兴捧月
  14. 网站架构优化之css+div设计对SEO的影响
  15. 优化 AIX 6.1 的性能 (转帖)
  16. 个人永久性免费-Excel催化剂功能第83波-遍历文件夹内文件信息特别是图像、音视频等特有信息...
  17. Linux系统之CentOS和Ubuntu的对比
  18. 如何使用【亿愿专利下载器】批量下载美国专利的PDF全文
  19. android抖音自动刷新,Android 使用SwipeRefreshLayout控件仿抖音做的视频下拉刷新效果...
  20. Photoshop数码艺术照片合成处理视频教程

热门文章

  1. 反思自己钻牛角尖:间隔反思思维方法 时时刻刻反馈目标
  2. Bug反思:减少笔误
  3. springboot page size过大导致内存溢出_Spring Boot 内存泄露怎么办呢?看这里看这里!!...
  4. imdb数据集_朴素贝叶斯分类imdb(代码分享)
  5. 负载均衡在分布式架构中是怎么玩起来的?
  6. sts在文件夹中显示_工作中很多问题,巧用Windows 10任务栏,几分钟快速解决
  7. 开发做甲方还是乙方_建筑行业的职场小白求职时是选择做甲方还是乙方?
  8. 华中C语言程序简答题,华中科技大学0911年C语言程序设计试卷.doc
  9. python获取键盘输入_python如何获取键盘输入
  10. 64位 linux 32位连接器,意法半导体为 32 位微控制器发布了一款自由的 Linux 集成开发环境...