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

复制代码
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);
    }
}
复制代码

 

posted @   追极  阅读(707)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 一个费力不讨好的项目,让我损失了近一半的绩效!
· 清华大学推出第四讲使用 DeepSeek + DeepResearch 让科研像聊天一样简单!
· 实操Deepseek接入个人知识库
· CSnakes vs Python.NET:高效嵌入与灵活互通的跨语言方案对比
· Plotly.NET 一个为 .NET 打造的强大开源交互式图表库
点击右上角即可分享
微信分享提示