java对List自定义排序的几种方法

今天开发中遇到一个需求,对组装成的List按某个字段进行排序,刚好就总结了一下List排序的集中方法,记录一下

项目中有一个SysFiled类,其中有个排序字段seq,使用该字段进行排序

hasFileds是需要排序的原始集合

使用Collections类的sort()方法进行匿名内部类排序
  1. 实现Comparator类的compare接口进行排序

    
    Collections.sort(hasFileds, new Comparator<SysFiled>() {
        @Override
        public int compare(SysFiled o1, SysFiled o2) {
            return o1.getSeq() - o2.getSeq();
        }
    });
    
  2. 简化为Lambda表达式:

    Collections.sort(hasFileds, (o1, o2) -> o2.getSeq() - o1.getSeq());
    
  3. 使用方法引用

    // 升序
    Collections.sort(hasFileds, Comparator.comparingInt(SysFiled::getSeq));
    // 降序
    Collections.sort(hasFileds, Comparator.comparingInt(SysFiled::getSeq).reversed());
    
Java8以上可以使用stream进行排序

会生成一个新的List

hasFileds = hasFileds.stream().sorted(Comparator.comparingInt(SysFiled::getSeq)).collect(Collectors.toList());

联系方式

作者:永夜

邮箱:Evernight@aliyun.com

以上内容有不正确的地方烦请指正!🙏🙏🙏

  • 2
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值