List集合排序

List集合有两大排序方式,分别为自然排序和自定义排序。
使用自然排序,需要元素类达到某种要求。
使用自定义排序,就是在需要排序的时候才传入排序规则

一、自然排序

  • 自然排序是 Collections.sort 方法,只带一个参数,参数为List集合。

  • 默认能直接使用自然排序的,有基本数据类型的包装类型、String类型等等。 数字类型的自然排序顺序

  • 固定为从小到大

  • 为什么那些类型能用于自然排序?因为它们都有一个特点,就是实现了 Comparable 接口的 compareTo 方法。
    在这里插入图片描述在这里插入图片描述

  • 该方法的使用意义是让自身对象与另一个对象进行某方面的比较大小,用前者减去后者,返回正数则认为是前者的更大,返回负数则认为前者的更小。

    List<Integer> list = new ArrayList();
    list.add(2);
    list.add(1);
    list.add(3);
    Collections.sort(list);
    System.out.println(list);
    // 输出:[1, 2, 3]

二、自定义排序

自定义排序同样也是 Collections.sort 方法,但是要多一个参数,该参数要实现 Comparator 接口的 compare 方法。
1、对List<Map<String, Object>>格式的数据排序
            List<Map<String, Object>> userList = userService.selectUserList();
            Collections.sort(userList, new Comparator<Map<String, Object>>() {
                @Override
                public int compare(Map<String, Object> o1, Map<String, Object> o2) {
                    Integer s1 = (Integer) o1.get("age");
                    Integer s2 = (Integer) o2.get("age");
//                    return s2 - s1;//降序
                    return s1 - s2;//升序
                }
            });

在这里插入图片描述

Logo

为开发者提供学习成长、分享交流、生态实践、资源工具等服务,帮助开发者快速成长。

更多推荐