lambda stream表达式字符串排序问题
@Data
@Builder
class Student{
//学号
private String num;
//姓名
private String name;
}
public class Test {
@
public void Test1(){
List<Student> stu = new ArrayList<>();
stu.add(Student.builder().num("1").name("张一").build());
stu.add(Student.builder().num("2").name("李二").build());
stu.add(Student.builder().num("11").name("王十一").build());
System.out.println("按照学号常规排序:");
stu.stream().sorted(Comparator.comparing(Student::getNum)).forEach(s->System.out.println(s));
System.out.println("按照学号转整数后排序:");
stu.stream().sorted(new Comparator<Student>() {
@Override
public int compare(Student o1, Student o2) {
return Integer.valueOf(o1.getNum()).compareTo(Integer.valueOf(o2.getNum()));
}
}).forEach(s->System.out.println(s));
System.out.println("按照学号转整数后排序 简化版:");
stu.stream().sorted(Comparator.comparing(s->Integer.valueOf(s.getNum()))).forEach(s->System.out.println(s));
}
}