Java8之 Stream 终止API的简介说明
下文讲述Java8中Stream进行了相关的操作之后,终止操作的方法分享
终止操作的分类:
终止操作的分类:
- 查找与匹配
- 归约
- 收集
查找与匹配涉及的方法
- allMatch:检查是否匹配所有元素
- anyMatch:检查是否至少匹配一个元素
- noneMatch:检查是否没有匹配的元素
- findFirst:返回第一个元素
- findAny:返回当前流中的任意元素
- count:返回流中元素的总个数
- max:返回流中最大值
- min:返回流中最小值
allMatch
boolean t1 = users.stream() .allMatch((e) ->e.getName().contains("user1")); System.out.println(t1); /*获取name中包含 user1的信息*/
anyMatch
此代码同上面的allMatch类似noneMatch
此代码同上面的allMatch类似findFirst
Object t1 = t.stream().findFirst(); System.out.println(t1);
归约
reduce(T iden, BinaryOperator b) 的功能: 将流中元素反复组合,得到相应的值 返回T reduce(BinaryOperator b) 可以将流中元素反复结合 得到相应的值 返回 Optional<T>例:
list<Integer> list = Arrays.asList(7,88,11,34,56,90); Integer sum = list.stream() .reduce(0, (x, y) -> x + y); System.out.println(sum); 例: 求和 Optional<Double> op = emps.stream() .map(Employee::getSalary) .reduce(Double::sum); System.out.println(op.get()); -----求列Salary的和
收集
collect(Collector c) 将流转换为其他形式 collect中具体方法如下所示:
- toList List<T> 把流中元素收集到List
- toSet Set<T> 把流中元素收集到Set
- toCollection Collection<T> 把流中元素收集到创建的集合
- counting Long 计算流中元素的个数
- summingInt Integer 对流中元素的整数属性求和
- averagingInt Double 计算流中元素Integer属性的平均值
- summarizingInt IntSummaryStatistics 收集流中Integer属性的统计值
List<String> list = emps.stream() .map(User::getName) .collect(Collectors.toList()); list.forEach(System.out::println); Set<String> set = emps.stream() .map(User::getName) .collect(Collectors.toSet()); set.forEach(System.out::println); 将name放入set集合中,进行去重操作 Double sum = users.stream() .collect(Collectors.summingDouble(User::getSalary)); Double avg = users.stream() .collect(Collectors.averagingDouble(User::getSalary));
版权声明
本文仅代表作者观点,不代表本站立场。
本文系作者授权发表,未经许可,不得转载。