java8新特性 Stream API 终止操作 左手的ㄟ右手 2021-11-29 11:40 215阅读 0赞 Stream的终止操作:终止操作会从流的流水线生成结果,其结果可以是任何不适流的操作,例如:List,Integer,甚至是void 一,查找与匹配 List<Employee> employeeList1 = Arrays.asList( new Employee("cdy1",18,1772.22), new Employee("cdy2",18,1872.22), new Employee("cdy3",18,1672.22), new Employee("cdy4",18,1972.22) ); List<Employee> employeeList2 = Arrays.asList( new Employee("cdy1",18,1772.22), new Employee("cdy2",19,1872.22), new Employee("cdy3",11,1672.22), new Employee("cdy4",18,1972.22) ); 说明:Predicate 是断言型函数式接口; 1、allMatch(Predicate p) 检查流中所有元素是否都满足条件,返回boolean值 @Test public void test1(){ boolean b1 = employeeList1.stream().allMatch((e) -> { if (e.getAge() == 18 || e.getSalary() == 1972.22) { return true; } return false; }); System.out.println(b1);//truw boolean b2 = employeeList2.stream().allMatch((e) -> { if (e.getAge() == 18 || e.getSalary() == 1972.22) { return true; } return false; }); System.out.println(b2); //false } 2、anyMatch(Predicate p) 检查所有元素中至少有一个元素满足条件 @Test public void test2() { boolean b = employeeList1.stream().anyMatch((e) -> e.getAge() == 18); System.out.println(b);//true } 3、noneMatch(Predicate p) 所有元素都不满足条件返回true,否则false @Test public void test3() { boolean b = employeeList1.stream().noneMatch((e) -> e.getAge() == 0); System.out.println(b);//true } 4、findFirst() 返回第一个元素 @Test public void test4() { Optional<Employee> first = employeeList1.stream() .sorted((e1, e2) -> Double.compare(e1.getSalary(), e2.getSalary())) .findFirst(); System.out.println(first.get().getSalary());//1672.22 } 5、findAny() 返回当前流中的任意元素 @Test public void test5() { Optional<Employee> any = employeeList1.stream().findAny(); System.out.println(any.get().getSalary());//1772.22 } 6.reduce(T iden, BinaryOperator b) (规约)可以将流中元素反复结合起来,得到一个值。返回 T @Test public void test8() { List<Integer> integers = Arrays.asList(1, 2, 3, 4, 5); Integer reduce = integers.stream().reduce(3, (x, y) -> x + y); System.out.println(reduce); } 7.collect(Collector c) 将流转换为其他形式。接收一个 Collector接口的 实现,用于给Stream中元素做汇总的方法 @Test public void test9() { List<Integer> collect = employeeList2.stream().map(Employee::getAge).collect(Collectors.toList()); collect.forEach(System.out::println); Set<String> collect1 = employeeList2.stream().map(Employee::getName).collect(Collectors.toSet()); collect1.forEach(System.out::print); employeeList2.stream().collect(Collectors.toCollection(HashSet::new)); }
相关 java8新特性--Stream API java8新特性--Stream API 一、StreamAPI概述 二、创建Stream 1、获取流的方法 2、由数组创建流: ﹏ヽ暗。殇╰゛Y/ 2023年01月14日 01:52/ 0 赞/ 142 阅读
相关 JDK8新特性——Stream API Java8中有两大最为重要的改变。第一个是 Lambda 表达式;另外一个则是 Stream API。Stream API ( java.util.stream) 把真正的函数 旧城等待,/ 2022年12月13日 01:18/ 0 赞/ 155 阅读
相关 Java 8新特性 Stream API 编程 Java8 Stream存在的必要性 为什么要使用Stream API? 解释这个问题之前,我们先看如下示例: 我们需要迭代整形list中所有大于10的元素的和。 以你之姓@/ 2022年06月16日 05:41/ 0 赞/ 151 阅读
相关 JAVA8新特性(四)——Stream API Stream使用来处理list、array这些集合的新API。链式编程,使用Stream处理代码更简洁。 创建流 steam() : 创建普通流。 parallelS 女爷i/ 2022年06月08日 05:18/ 0 赞/ 191 阅读
相关 Java8新特性 Streams API 详解 为什么需要 Stream Stream 作为 Java 8 的一大亮点,它与 java.io 包里的 InputStream 和 OutputStream 是完全不同的概 绝地灬酷狼/ 2022年05月22日 02:14/ 0 赞/ 196 阅读
相关 Java8新特性之Stream API > 转载:[https://blog.csdn.net/u013291394/article/details/52624966][https_blog.csdn.net_u01 骑猪看日落/ 2022年05月17日 08:55/ 0 赞/ 193 阅读
相关 java8新特性stream API 这里写自定义目录标题 欢迎使用Markdown编辑器 新的改变 功能快捷键 合理的创建标题,有助于目录的生成 约定不等于承诺〃/ 2022年02月01日 00:01/ 0 赞/ 272 阅读
相关 java8新特性 Stream API 终止操作 Stream的终止操作:终止操作会从流的流水线生成结果,其结果可以是任何不适流的操作,例如:List,Integer,甚至是void 一,查找与匹配 List<Em 左手的ㄟ右手/ 2021年11月29日 11:40/ 0 赞/ 216 阅读
还没有评论,来说两句吧...