java8 Stream

    long count(); //anyMatch判斷的條件裏,任意一個元素成功,返回true
    boolean anyMatch(Predicate<? super T> predicate); //allMatch判斷條件裏的元素,全部的都是,返回true
    boolean allMatch(Predicate<? super T> predicate); //noneMatch跟allMatch相反,判斷條件裏的元素,全部的都不是,返回true
    boolean noneMatch(Predicate<? super T> predicate); ======================================== List<String> strs = Arrays.asList("a", "a", "a", "a", "b"); boolean aa = strs.stream().anyMatch(str -> str.equals("a")); boolean bb = strs.stream().allMatch(str -> str.equals("a")); boolean cc = strs.stream().noneMatch(str -> str.equals("a")); long count = strs.stream().filter(str -> str.equals("a")).count(); System.out.println(aa);// TRUE
        System.out.println(bb);// FALSE
        System.out.println(cc);// FALSE
        System.out.println(count);// 4

 

 

中間操做
  流中間操做在應用到流上,返回一個新的流:
map:經過一個 Function 把一個元素類型爲 T 的流轉換成元素類型爲 R 的流。
flatMap:經過一個 Function 把一個元素類型爲 T 的流中的每一個元素轉換成一個元素類型爲 R 的流,再把這些轉換以後的流合併。
filter:過濾流中的元素,只保留知足由 Predicate 所指定的條件的元素。
distinct:使用 equals 方法來刪除流中的重複元素。
limit:截斷流使其最多隻包含指定數量的元素。
skip:返回一個新的流,並跳過原始流中的前 N 個元素。
sorted:對流進行排序。
peek:返回的流與原始流相同。當原始流中的元素被消費時,會首先調用 peek 方法中指定的 Consumer 實現對元素進行處理。
dropWhile:從原始流起始位置開始刪除知足指定 Predicate 的元素,直到遇到第一個不知足 Predicate 的元素。
takeWhile:從原始流起始位置開始保留知足指定 Predicate 的元素,直到遇到第一個不知足 Predicate 的元素。
終結操做
  終結操做產生最終的結果。
forEach 和 forEachOrdered 對流中的每一個元素執行由 Consumer 給定的實現。在使用 forEach 時,並無肯定的處理元素的順序;forEachOrdered 則按照流的相遇順序來處理元素,若是流有肯定的相遇順序的話。
reduce進行遞歸計算
collect生成新的數據結構
count 
相關文章
相關標籤/搜索