首先用泛型为String的list和泛型为AuditBO对象的list进行排序
List<String> list = new ArrayList<>();
list.add("2");
list.add("1");
list.add("4");
List<AuditBO> AuditBOS = new ArrayList<>();
按照JDK1.8版本以下的方式来给list进行排序:
Collections.sort(list, new Comparator<String>() {
@Override
public int compare(String s1, String s2) {
return s1.compareTo(s2);
}
});
Collections.sort(AuditBOS, new Comparator<AuditBO>() {
@Override
public int compare(AuditBO o1, AuditBO o2) {
return o1.getAuditTime().compareTo(o2.getAuditTime());
}
});
以上方法在idea中会出现提示我们可以使用lambda替换 new Comparator<String>(){} ,
提示可以直接使用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());