1.Stream<T> peek(Consumer<? super T> action);java
peek方法接收一個Consumer的入參。瞭解λ表達式的應該明白 Consumer的實現類 應該只有一個方法,該方法返回類型爲voidapp
Consumer<Integer> c = i -> System.out.println("hello" + i);
2.<R> Stream<R> map(Function<? super T, ? extends R> mapper);code
Function 的 λ表達式 能夠這樣寫io
Function<Integer,String> f = x -> {return "hello" + i;};
咱們發現Function 比 Consumer 多了一個 return。
這也就是peek 與 map的區別了。class
總結:peek接收一個沒有返回值的λ表達式,能夠作一些輸出,外部處理等。map接收一個有返回值的λ表達式,以後Stream的泛型類型將轉換爲map參數λ表達式返回的類型泛型