Collections.sort()排序方法

Collections.sort()方法详解

是对数据进行排序的一个方法,根据指定比较器产生的顺序对指定列表进行排序。

  • Collections.sort() 排序 (倒叙排序)
  • 返回值:return a.compareTo(b) 就排序了,为什么呢?
  • compareTo() 这个方法,它返回了3种int类型的值:
  1. 负整数 : a < b,位置排在前面
  2. 零 : a = b, 位置不变
  3. 正整数 : a > b, 位置排在后面
点击查看代码
public static <T> void sort(List<T> list, Comparator<? super T> c) {
	list.sort(c);
}

参数说明:

  • list : 要排序的list集合
  • c : 确定列表数据的比较器
  • T : 列表中对象的类型,可以是map,set,list,bean等,要保证集合中的对象是可以被比较的

使用demo

点击查看代码
public static void main(String[] args) {

        List<Map<String, Object>> list = new ArrayList<>();
        list.add(new HashMap<String, Object>(){{put("id",2);put("name", "bbb");put("chinese", "992");}});
        list.add(new HashMap<String, Object>(){{put("id",3);put("name", "ccc");put("chinese", "993");}});
        list.add(new HashMap<String, Object>(){{put("id",1);put("name", "aaa");put("chinese", "991");}});
        list.add(new HashMap<String, Object>(){{put("id",4);put("name", "bbb");put("chinese", "994");}});

        for (Map<String, Object> stringObjectMap : list) {
            System.out.println("---map:" + stringObjectMap);
        }
        System.out.println("-----------------");
        Collections.sort(list, new Comparator<Map<String, Object>>() {
            @Override
            public int compare(Map<String, Object> o1, Map<String, Object> o2) {
                String id2 = o2.get("id").toString();
                String name2 = o2.get("name").toString();
                String id1 = o1.get("id").toString();
                String name1 = o1.get("name").toString();
//                return id2.compareTo(id1);
                return name2.compareTo(name1);
            }
        });

        for (Map<String, Object> stringObjectMap : list) {
            System.out.println("---map:" + stringObjectMap);
        }
    }

输出结果:

点击查看代码
Connected to the target VM, address: '127.0.0.1:56834', transport: 'socket'
---map:{chinese=992, name=bbb, id=2}
---map:{chinese=993, name=ccc, id=3}
---map:{chinese=991, name=aaa, id=1}
---map:{chinese=994, name=bbb, id=4}
-----------------
---map:{chinese=993, name=ccc, id=3}
---map:{chinese=992, name=bbb, id=2}
---map:{chinese=994, name=bbb, id=4}
---map:{chinese=991, name=aaa, id=1}
Disconnected from the target VM, address: '127.0.0.1:56834', transport: 'socket'
posted @   zlonger  阅读(2913)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 【自荐】一款简洁、开源的在线白板工具 Drawnix
· 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY
点击右上角即可分享
微信分享提示