Stream—sort排序(一)

使用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
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章