首页 > 编程语言 >java实现多字段排序(普通对象List和MapList)

java实现多字段排序(普通对象List和MapList)

时间:2023-03-21 16:02:18浏览次数:42  
标签:map java List add vo MapList 001 voList new

public class SortTest {

    public static void main(String[] args) {
        //普通对象list
        sortVOList();

        //mapList
        sortMapList();
    }

    private static void sortVOList() {
        List<RiskMonitorScrollVO> voList = new ArrayList<>();
        RiskMonitorScrollVO vo = new RiskMonitorScrollVO();
        vo.setTime("202303");
        vo.setOrgName("机构001");
        vo.setOrgSortNo("001");
        vo.setTargetName("指标001");
        vo.setTargetSortNo("001");
        voList.add(vo);

        vo = new RiskMonitorScrollVO();
        vo.setTime("202303");
        vo.setOrgName("机构003");
        vo.setOrgSortNo("004");
        vo.setTargetName("指标001");
        vo.setTargetSortNo("001");
        voList.add(vo);

        vo = new RiskMonitorScrollVO();
        vo.setTime("202303");
        vo.setOrgName("机构002");
        vo.setOrgSortNo("003");
        vo.setTargetName("指标001");
        vo.setTargetSortNo("001");
        voList.add(vo);

        vo = new RiskMonitorScrollVO();
        vo.setTime("202303");
        vo.setOrgName("机构004");
        vo.setOrgSortNo("002");
        vo.setTargetName("指标002");
        vo.setTargetSortNo("002");
        voList.add(vo);

        vo = new RiskMonitorScrollVO();
        vo.setTime("202202");
        vo.setOrgName("机构001");
        vo.setOrgSortNo("001");
        vo.setTargetName("指标001");
        vo.setTargetSortNo("001");
        voList.add(vo);


        vo = new RiskMonitorScrollVO();
        vo.setTime("202210");
        vo.setOrgName("机构001");
        vo.setOrgSortNo("001");
        vo.setTargetName("指标001");
        vo.setTargetSortNo("001");
        voList.add(vo);
        System.out.println(JSON.toJSONString(voList));

        voList.sort(Comparator.comparing(RiskMonitorScrollVO::getTime, Comparator.reverseOrder())
                .thenComparing(RiskMonitorScrollVO::getOrgSortNo)
                .thenComparing(RiskMonitorScrollVO::getTargetSortNo));
        System.out.println(JSON.toJSONString(voList));
    }

    private static void sortMapList() {
        List<Map<String, Object>> list = new ArrayList<>();
        Map<String, Object> map = new HashMap<>();
        map.put("orgId", 1);
        map.put("time", "202301");
        list.add(map);

        map = new HashMap<>();
        map.put("orgId", 1);
        map.put("time", "202212");
        list.add(map);

        map = new HashMap<>();
        map.put("orgId", 3);
        map.put("time", "202202");
        list.add(map);

        map = new HashMap<>();
        map.put("orgId", 2);
        map.put("time", "202301");
        list.add(map);
        System.out.println(list);

        list.sort(Comparator.comparing(x -> ((Integer) ((Map<String, Object>) x).get("orgId")))
                .thenComparing(x -> ((String) ((Map<String, Object>) x).get("time")))
        );

        System.out.println(list);
    }
}

 

标签:map,java,List,add,vo,MapList,001,voList,new
From: https://www.cnblogs.com/hdwang/p/17240320.html

相关文章

  • 如何通过Java应用程序将PDF转为图片格式?
    PDF文件和图片文件,这是两种完全不一样的格式,可是有的时候这两种格式却是有相互转换的需要,大家在工作中遇到PDF文件转图片文件的问题时是怎么解决的呢?你们使用的方法简单方便......
  • JAVA代码审计 SSRF篇
    一、巩固SSRFSSRF服务端请求伪造,Web应用程序往往会提供一些能够从远处获取图片或是文件的接口,在这些接口上用户使用指定的URL便能完成远程获取图片,下载文件等操作。......
  • 6.Java HotSpot(TM) 64-Bit Server VM warning: INFO: os::commit_memory(0x000000079
    这个问题引起的原因是:服务器上物理内存太小,大部分都是应为程序太多,内存吃紧,而给jvm分配的内存太大(java程序启动需要的内存,linux不能给),最好调整java程序jvm内存吧(测试环......
  • Java 中 Future 的 get 方法超时会怎样?
    一、背景很多Java工程师在准备面试时,会刷很多八股文,线程和线程池这一块通常会准备线程的状态、线程的创建方式,Executors里面的一些工厂方法和为什么不推荐使用这些工厂方......
  • Java 接口的所有子类都需要执行相同处理逻辑的推荐姿势
    一、背景在实际开发过程中,有些时候我们可能会遇到这样的场景:我们定义接口给上游使用,不同的业务类型定义不同的子类型,实现该接口的某个函数,但是这些子类型会有很多公共的逻辑......
  • Java实现记录对象修改前后的变化
    需求描述今天接到一个需求,修改数据时需要记录修改详情。详情包括,被修改的字段,修改前的值和修改后的值。解决思路分别比较修改前后两个Bean实例的所有成员变量,当值不一致时......
  • Java基本类型和包装类什么情况下判断相等(“==“或“equals“)?
    Java中判断两个变量是否相等有两种方式:一种是利用==运算符,另一种是利用equals方法。如果变量是基本类型,那么使用==和使用equals会得到相同的结果,都是判断变量的值是否......
  • javaSE-day03(常用API一)
    API(ApplicationProgramminginterface)意思是应用程序编程接口,说人话就是Java帮我们写好的一些程序,如:类、方法等,我们直接拿过来用就可以解决一些问题。可以在API文档进行查......
  • JavaScript Scope All In One
    JavaScriptScopeAllInOneGlobalScope/全局作用域ScriptScope/脚本作用域LocalScope/局部作用域(函数作用域)BlockScope/块级作用域({}作用域)C......
  • Java入门_一维数组_第一题_升序数组
    声明咱是个新手,没啥技术只会最基础的,见谅哈。更简化的方法还请大佬指教。题目:已知有个升序数组的数组,要插入一个元素,该数组顺序依然是升序。例如:{25,49,74,......