美文网首页
Java 8 新特性

Java 8 新特性

作者: 沁园Yann | 来源:发表于2022-02-12 11:29 被阅读0次

    1、Stream 流

            List<String> strings = Arrays.asList("a", "a", "", "b", "c","", "d");
            List<String> filtered = strings.stream() //获取流
                    .filter(string -> !string.isEmpty()) //过滤为空的字符串
                    .distinct() //去重
                    .collect(Collectors.toList()); //流转集合
            filtered.stream().forEach(System.out::println); // 遍历输出结果:a  b  c  d
    
            filtered.stream().map(str -> str.toUpperCase()) //转大写字母(map用于映射每个元素到对应的结果)
                    .limit(3) //限制只有3个数据
                    .forEach(System.out::println); //输出结果:A  B  C
    
            String strResult = filtered.stream().collect(Collectors.joining(", ")); //拼接集合字符串
    
    class Student {
        String name;
        int age;
    }
    
    List<Student> studentList = Arrays.asList(new Student("周一", 11), new Student("周五", 55), 
        new Student("周二", 22), new Student("周三", 33), new Student("周四", 44));
        List<Student> studentList2 = studentList .stream()
            .map(s -> new Student(s.getName(), s.getAge() * 2))  //映射对象年龄乘以2
            .collect(Collectors.toList()); //返回学生对象数组
        studentList.stream().map(s -> s.getAge() * 2)  //映射结果为年龄乘以2
            .forEach(System.out::println); //输出结果:22  110   44  66  88
        
            studentList.stream().filter(s -> s.getAge() > 20)
                    .sorted((s1, s2) -> s1.getAge() - s2.getAge())
                    .forEach(System.out::println); /**输出结果:Student{name='周二', age=22}
                                                                Student{name='周三', age=33}
                                                                Student{name='周四', age=44}
                                                                Student{name='周五', age=55} */
        Student student = studentList.stream().findFirst().orElse(null); //获取集合中第一个元素
         int sumAge = studentList.stream().mapToInt(s -> s.getAge()).sum(); //映射整形累加结果:165
    
    

    相关文章

      网友评论

          本文标题:Java 8 新特性

          本文链接:https://www.haomeiwen.com/subject/sdstlrtx.html