終止操做是流操做的最後一步,只有當終止操做出現的時候,其餘中間操做纔會真正被執行。有以下一些終止操做:java
該部分屬於查找與匹配dom
allMatch(Predicate p) :檢查是否匹配全部元素
anyMatch(Predicate p) :檢查是否至少匹配一個元素
noneMatch(Predicate p) :檢查是否沒有匹配全部元素
findFirst() :返回第一個元素
findAny() :返回當前流中的任意元素code
該部分屬於統計接口
count() :返回流中元素總數
max(Comparator c) :返回流中最大值
min(Comparator c) :返回流中最小值
forEach(Consumer c) 內部迭代(使用 Collection 接口須要用戶去作迭代,稱爲外部迭代。相反,Stream API 使用內部迭代——它幫你把迭代作了)io
終端操做會從流的流水線生成結果。其結果能夠是任何不是流的值,例如:List、Integer,甚至是 void 。class
拿count舉例:test
@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); }