List集合的排序

List集合的排序

超全的排序手段

2、对list集合的排序
Collections.sort()

  //todo  排序处理:
    /***
     * 1,首先对于集合排序首先想到  内比较器 和外比较器
     * 2,用内外比较器的实现手段 TreeSet
     * 3, List 集合中的sort(外比较器)
     * 4,Collections 工具类的 sort(集合对象),sort(集合对象,外比较器)方法
     */
    @Test
     public void sort(){
        List<Integer> list = new ArrayList<>();
        list.add(100);
        list.add(13);
        list.add(67);
        list.add(200);
        //默认升序规则(内比较器的排序规则)
        Collections.sort(list);
        System.out.println("--------");
//        Collections.sort(list, new Comparator<Integer>()
//        {
//            @Override
//            public int compare(Integer o1, Integer o2)
//            {
//                return o2.compareTo(o1);
//
//            }
//        });

        //todo 也可以用lambda表达式  
        //o2.compareTo(o1) == 0 相等
        //o2.compareTo(o1) > 0  o2>o1
        //o2.compareTo(o1) < 0  o2<o1 
        //(o1,o2)->o2.compareTo(o1) 是降序
        //(o1,o2)->o1.compareTo(o2) 是升序
        Collections.sort(list,(o1,o2)->o2.compareTo(o1));



        //todo list 中的  sort() 方法,利用外比较器制定排序规则
//        list.sort(new Comparator<Integer>()
//        {
//            @Override
//            public int compare(Integer o1, Integer o2)
//            {
//                return o2.compareTo(o1);
//            }
//        });

        list.forEach(v-> System.out.println(v));

// list对象中某一属性升序
Collections.sort(list,Comparator.comparing(Student::getPlanStartDate));
// list对象中某一属性降序(可以先升序再降序)
Collections.sort(list,Comparator.comparing(Student::getPlanStartDate));
Collections.reverse(list);

利用 Ordering 排序(常用的操作)
list集合中 同一对象按照不同属性排序的方法
Ordering超全的排序手段

// 按照创建时间降序排
studentList.sort(Ordering.natural().reverse().nullLast().onResultOf(Student::getCreateTime));
//在按照状态升序排
studentList.sort(Ordering.natural().nullLast().onResultOf(Student::getStudent));
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值