天天看點

Java8 Stream流式程式設計,極大解放你的生産力!

Predicate<T> boolean test(T t) 傳入一個參數傳回boolean值

Consumer<T> void accept(T t) 傳入一個參數,無傳回值

Function<T,R> R apply(T t) 傳入一個參數,傳回另一個類型

準備資料

集合 Collection.stream()

靜态方法 Stream.of

數組 Arrays.stream

foreach(Consumer c) 周遊操作

collect(Collector) 将流轉化為其他形式

max(Comparator) 傳回流中最大值

min(Comparator) 傳回流中最小值

count 傳回流中元素綜述

toList List<T> 把流中元素收集到List

toSet Set<T> 把流中元素收集到Set

toCollection Coolection<T> 把流中元素收集到Collection中

groupingBy Map<K,List<T>> 根據K屬性對流進行分組

partitioningBy Map<boolean, List<T>> 根據boolean值進行分組

filter(Predicate) 篩選流中某些元素

map(Function f) 接收流中元素,并且将其映射成為新元素,例如從student對象中取name屬性

flatMap(Function f) 将所有流中的元素并到一起連接配接成一個流

peek(Consumer c) 擷取流中元素,操作流中元素,與foreach不同的是不會截斷流,可繼續操作流

distinct() 通過流所生成元素的equals和hashCode去重

limit(long val) 截斷流,取流中前val個元素

sorted(Comparator) 産生一個新流,按照比較器規則排序

sorted() 産生一個新流,按照自然順序排序

booelan allMatch(Predicate) 都符合

boolean anyMatch(Predicate) 任一進制素符合

boolean noneMatch(Predicate) 都不符合

findFirst——傳回第一個元素

findAny——傳回目前流中的任意元素

count——傳回流中元素的總個數

max——傳回流中最大值

min——傳回流中最小值

Java8 Stream流式程式設計,極大解放你的生産力!