我是靠谱客的博主 傻傻水蜜桃,最近开发中收集的这篇文章主要介绍Java8 Stream sorted,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

Java8 Stream sorted

sorted()对stream进行自然顺序排序,或传入Comparator实现自定义的排序

    public static void main(String[] args) {
     	List<String> strings = Arrays.asList("555", "333", "444", "111", "222", "666", null);
     	List<Integer> integers = Arrays.asList(555, 333, 444, 111, 222, 666, null);
     	List<Student> classOneStudents = new ArrayList<>();
	 	List<String> enrolOrders = Arrays.asList("Luis", "Weison", "Jack", "Evan");
	 	classOneStudents.add(Student.builder().age(19).name("Evan").score(80).build());
     	classOneStudents.add(Student.builder().age(18).name("Weison").score(90).build());
     	classOneStudents.add(Student.builder().age(21).name("Luis").score(60).build());
     	classOneStudents.add(Student.builder().age(20).name("Jack").score(70).build());
        
        //1 sorte()d对list<String>进行自然排序
        strings.stream()
                .map(s -> Optional.ofNullable(s).orElseGet(String::new))
                .sorted()
                .forEach(System.out::println);
        System.out.println();
        //2 sorte()d对list<int>进行自然排序
        integers.stream()
                .map(s -> Optional.ofNullable(s).orElse(0))
                .sorted()
                .forEach(System.out::println);
        System.out.println();
        //3 sorte()d对list<Student>进行自然排序
        classOneStudents.stream()
                .map(s -> Optional.ofNullable(s).orElseGet(Student::new))
                .sorted()
                .forEach(System.out::println);
        //4 sorte()d对list<Student>进行自定义排序
        System.out.println();
        classOneStudents.stream()
                .sorted((student1, student2) -> student1.getScore() > student2.getScore() ? 1 : -1)
                .forEach(System.out::println);
        System.out.println();
        //5 按照入学顺序enrolOrders进行展示
        //5.1 生成一个Map<studentName,Student>
        Map<String, Student> collect = classOneStudents.stream()
                .collect(Collectors.toMap(student -> student.getName(), Function.identity(),
                        (student1, student2) -> student2));
        //5.2 按照enrolOrders中的name顺序去Map<studentName,Student>中拿Student,并生成新的List
        enrolOrders.stream()
                .map(enrolOrder->collect.get(enrolOrder))
                .forEach(System.out::println);
    }

最后

以上就是傻傻水蜜桃为你收集整理的Java8 Stream sorted的全部内容,希望文章能够帮你解决Java8 Stream sorted所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(42)

评论列表共有 0 条评论

立即
投稿
返回
顶部