Java8-Stream-终止操作-查找与匹配

终止操作是流操作的最后一步,只有当终止操作出现的时候,其他中间操作才会真正被执行。有如下一些终止操作:

该部分属于查找与匹配

allMatch(Predicate p)        :检查是否匹配所有元素
anyMatch(Predicate p)      :检查是否至少匹配一个元素
noneMatch(Predicate p)    :检查是否没有匹配所有元素
findFirst()                           :返回第一个元素
findAny()                            :返回当前流中的任意元素

该部分属于统计

count()                               :返回流中元素总数
max(Comparator c)           :返回流中最大值
min(Comparator c)            :返回流中最小值

forEach(Consumer c) 内部迭代(使用 Collection 接口需要用户去做迭代,称为外部迭代。相反,Stream API 使用内部迭代——它帮你把迭代做了)

终端操作会从流的流水线生成结果。其结果可以是任何不是流的值,例如:List、Integer,甚至是 void 。

拿count举例:

	@Test
	public void test4() {
		//flatMap类型:将为每个元素创建一个流,并最终合并成一个流
		List<List> lp = new ArrayList();
		for(int i=0;i<3;i++) {
			List<Double> lc = new ArrayList();
			for(int j=0;j<10;j++) {
				lc.add(Math.random());
			}
			lp.add(lc);
		}
		System.out.println(lp.stream().flatMap((x)->x.stream()).count());
		//lp.stream().flatMap((x)->x.stream()).forEach(System.out::println);
	}

猜你喜欢

转载自my.oschina.net/u/3049601/blog/1623572