Comparator.comparing 默认为降序排序,
升序代码:Comparator.comparing(stu::getA,Comparator.reverseOrder())
import java.util.ArrayList;
import java.util.Comparator;
import java.util.List;
import java.util.stream.Collectors;
public class test {
public static void main(String[] args) {
List<stu> list = new ArrayList<>();
stu s1 = new stu("2021-02-24","05:30");
stu s2 = new stu("2021-02-24","05:31");
stu s3 = new stu("2020-02-24","05:31");
stu s5= new stu("2021-02-24","03:31");
stu s4= new stu("2020-02-24","18:31");
stu s6= new stu("2018-12-24","03:31");
stu s7= new stu("2018-02-02","12:31");
stu s17= new stu("2018-02-02","00:31");
stu s8= new stu("2018-02-02","15:31");
list.add(s1);
list.add(s3);
list.add(s2);
list.add(s4);
list.add(s5);
list.add(s6);
list.add(s7);
list.add(s17);
list.add(s8);
list.stream().forEach(dd->System.out.println(dd));
System.out.println("------------------------------------------");
List<stu> collect = list.stream().sorted(Comparator.comparing(stu::getA).thenComparing(stu::getB)).collect(Collectors.toList());
collect.stream().forEach(dd->System.out.println(dd));
}
static class stu{
private String a;
private String b;
stu(String a,String b){
this.a = a;
this.b = b;
}
public String getA() {
return a;
}
public void setA(String a) {
this.a = a;
}
public String getB() {
return b;
}
public void setB(String b) {
this.b = b;
}
@Override
public String toString() {
return "stu{" +
"a=" + a +
", b=" + b +
'}';
}
}
}