java8
lambda
lambda表達式可作為參數傳遞給方法
- 使用@FunctionalInterface 自定義函數式接口
- 將接口作為參數傳遞給方法
- 調用方法時傳遞lambda表達式
java 內置心函數式接口
- Consumer<T> 消費性接口 泛型是參數 無返回值 調用方法是 void accept (T t)
- Supplier<T> 供給型接口 無參數 泛型是返回值 調用方法是 T get()
- Function<T,R> 函數型接口 T泛型為參數 R泛型為返回值 調用方法是 R apply(T t)
- Predicate<T> 斷言式接口 泛型是參數 返回boolean值 調用方法是 boolean test(T t)
Stream API
- 創建Stream -> 中間操作 ->終止操作 從一個流轉化成另一個流
- 創建Stream list.stream、Array.stream(args[])、stream.of(values ...)、stream.iterate(final T seed, final UnaryOperator<T>f)
- 中間操作:distinct()、 limit(long l)、 skip(long l)、 filter(Predicate p)、 map(Function f)、 flatMap(Function f) 、sorted()(Comparator c)
- 終止操作:allMatch(Predicate p)、anyMatch(Predicate p)、findFirst()、finAny()、count()、max()、min()、reduce(T iden, BinaryOperator b) (BinaryOperator b)
collect(Collector c)
- parallel()與sequential() 並行流與順序流