使用sorted排序
public static void main(String[] args) {
List<Student> list = new ArrayList<>();
Student s1 = new Student("zhangsan","beijing",30);
list.add(s1);
Student s2 = new Student("lisi","shanghai",29);
list.add(s2);
Student s3 = new Student("lining","shandong",31);
list.add(s3);
// forEach循环
list.stream().forEach(student -> System.out.println(student.getAge()));
System.out.println("----------使用stream和sort--默认升序----------");
// sort排序:原集合不变,新集合按顺序排序
List<Student> sortList1 = list.stream().sorted((a, b) -> a.getAge().compareTo(b.getAge())).collect(Collectors.toList());
sortList1.stream().forEach(s-> System.out.println(s.getAge()));
System.out.println();
System.out.println("---------使用stream和sort--降序排列-----------");
List<Student> sortDesList = list.stream().sorted(Comparator.comparingInt(Student::getAge).reversed()).collect(Collectors.toList());
sortDesList.stream().forEach(s-> System.out.println(s.getAge()));
System.out.println();
System.out.println("----------不使用stream和sort------------");
// 使用集合的sort排序,集合自身排序发生变化
list.sort((a,b)->a.getAge().compareTo(b.getAge()));
list.stream().forEach(student -> System.out.println(student.getAge()));
System.out.println();
}
运行结果:
Connected to the target VM, address: '127.0.0.1:51549', transport: 'socket'
30 29 31 ----------使用stream和sort--默认升序---------- 29 30 31 ---------使用stream和sort--降序排列----------- Disconnected from the target VM, address: '127.0.0.1:51549', transport: 'socket' 31 30 29 ----------不使用stream和sort------------ 29 30 31