JDK1.8 list 排序

首先用泛型为String的list和泛型为AuditBO对象的list进行排序

 List list = new ArrayList<>();
        list.add("2");
        list.add("1");
        list.add("4");
 List AuditBOS = new ArrayList<>();

按照JDK1.8版本以下的方式来给list进行排序:

  Collections.sort(list, new Comparator() {
       @Override
       public int compare(String s1, String s2) {
           return s1.compareTo(s2);
       }
  });
  Collections.sort(AuditBOS, new Comparator() {
       @Override
       public int compare(AuditBO o1, AuditBO o2) {
           return o1.getAuditTime().compareTo(o2.getAuditTime());
       }
  });

 以上方法在idea中会出现提示我们可以使用lambda替换 new Comparator(){} ,提示可以直接使用list.sort替代Collections.sort,改写后:

list.sort((String s1, String s2) -> s1.compareTo(s2));
AuditBOS.sort((AuditBO b1,Audit b2) -> b1.getAuditTime().compareTo(b2.getAuditTime()));

 随即又出现提示:建议我们使用Comparator.comparing

 改写后: 

list.sort(Comparator.comparing(String::valueOf));
AuditBOS.sort(Comparator.comparing(AuditBO::getAuditTime));// 泛型为AuditBO的对象list

Comparator.comparing的默认排序是正序排列 例如list输出为:1 ,2 ,4

需要逆序排列只需要增加.reversed()

list.sort(Comparator.comparing(String::valueOf).reversed());
AuditBOS.sort(Comparator.comparing(AuditBO::getAuditTime).reversed());

 

你可能感兴趣的:(JDK1.8 list 排序)