博客 / 詳情

返回

java8 lambda和Stream API

java8

lambda

lambda表達式可作為參數傳遞給方法
  1. 使用@FunctionalInterface 自定義函數式接口
  2. 將接口作為參數傳遞給方法
  3. 調用方法時傳遞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() 並行流與順序流
user avatar
0 位用戶收藏了這個故事!

發佈 評論

Some HTML is okay.