永夜-Evernight

永夜降临之前,你都有改变的资格

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

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


标题:java对List自定义排序的几种方法
作者:luomuren
地址:http://luomuren.top/articles/2022/08/27/1661582019829.html