• Stream流数组和对象List排序



    一、对象单字段排序

            List<People> peopleList = Lists.newArrayList();
            peopleList.add(new People(1, "小王", 5));
            peopleList.add(new People(1, "小李", 4));
            peopleList.add(new People(2, "小张", 3));
            peopleList.add(new People(2, "小皇", 2));
            peopleList.add(new People(2, "小刘", 1));
    
            //单字段排序
            peopleList =  peopleList.stream().sorted(Comparator.comparing(People::getJgId)).collect(Collectors.toList());
            log.info(peopleList.toString());
            //这里是根据userId 进行排序——降序排序  reversed()
            peopleList =  peopleList.stream().sorted(Comparator.comparing(People::getJgId).reversed()).collect(Collectors.toList());
            log.info(peopleList.toString());
    

    在这里插入图片描述

    二、多字段排序

            List<People> peopleList = Lists.newArrayList();
            peopleList.add(new People(1, "小王", 5));
            peopleList.add(new People(1, "小李", 4));
            peopleList.add(new People(2, "小张", 3));
            peopleList.add(new People(2, "小皇", 2));
            peopleList.add(new People(2, "小刘", 1));
            //这里是根据Id及jgId进行联合升序排序
            peopleList =  peopleList.stream().sorted(Comparator.comparing(People::getId).thenComparing(People::getJgId)).collect(Collectors.toList());
            log.info(peopleList.toString());
            //下面两个结果都是以Id降序jgId升序排序的结果,但是查询方式不同
            //先以id升序,升序结果进行id降序,再进行jgId升序
            peopleList =  peopleList.stream().sorted(Comparator.comparing(People::getId).reversed().thenComparing(People::getJgId)).collect(Collectors.toList());
            log.info(peopleList.toString());
            //先以id降序,再进行jgId升序 **推荐使用该种方式**
            peopleList =  peopleList.stream().sorted(Comparator.comparing(People::getId,Comparator.reverseOrder()).thenComparing(People::getJgId)).collect(Collectors.toList());
            log.info(peopleList.toString());
            //先以id升序,再进行jgId降序
            peopleList =  peopleList.stream().sorted(Comparator.comparing(People::getId).thenComparing(People::getJgId,Comparator.reverseOrder())).collect(Collectors.toList());
            log.info(peopleList.toString());
    

    在这里插入图片描述

    三、数组排序以及List排序

    先把数组转换成List对象再进行排序
    在这里插入图片描述

    1. 我不停奔跑只为追赶当年被寄予厚望的自己。
    2. 错的每个题都是为了遇见对的人,对的每道题,都是为了遇见更好的自己。
    3. 低头是题海,抬头是前途。
    4. 我虽摘不下星星,但在我的宇宙里,你已然是我的—片银河系。
    5. 再苦一会儿,未来会很甜!
    6. 生活不可能像你想象得那么好但也不会像你想象得那么糟
    7. 很奇怪,我们不屑与他人为伍,却害怕自己与众不同。
    8. 我要悄无声息,成为你的遥不可及。
    9. 今日长缨在手,何时缚住苍龙。
    10. 真正的秘密不在黑夜之中,也不在巧妙的陷井里,而是藏在人的内心深处。
  • 相关阅读:
    【论文阅读】ActiveNeRF:通过不确定性估计候选新视图
    JAVA:实现Excel和PDF上下标
    leetcode-每日一题-1779-找到最近的有相同 X 或 Y 坐标的点(简单,数学思想)
    【ABAQUS】模态分析
    【CSDN|每日一练】硬币划分
    group by用法
    武汉大学:浅议重保期间的邮件防护
    【Spring-5.1】AbstractAutowireCapableBeanFactory#createBeanInstance实例化对象
    WHALE 会员指南(第 1 部分)
    【Java中23种面试常考的设计模式之代理模式(Proxy)---结构型模式】
  • 原文地址:https://blog.csdn.net/weixin_46146718/article/details/126946987