lambda stream表达式字符串排序问题

时间:2025-03-27 13:27:41
@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)); } }