1. 程式人生 > 實用技巧 >面試複習之java stream

面試複習之java stream

一些隨筆和一些知識點。

說實在的,stream在對日專案裡不常用的東西,很多人看不懂,程式碼維護就會很難,整體對日專案的水平確實就那樣,令人堪憂。

最近有面試官問我Function和Consumer的問題,我也沒複習一時之間也沒答出來,一是沒複習到二是6個月沒碰java都忘記了。後話。。。。

我談談理解吧:也不是從哪抄過來的。

我們知道java stream 是java提供的一種面向函式式的程式設計方式 ----大前提!

其實就是說java stream 提供了一套規範的函式式介面和一套具體實現

①一套規範的函式式介面 位於java.util.function下

沒那麼複雜,常用的就那麼幾個 Function,Consumer,Supplier,Predicate

  

 * @param <T> the type of the input to the function
 * @param <R> the type of the result of the function
public interface Function<T, R> {

    // Applies this function to the given argument.
    // 顧名思義了 具體處理就寫在這裡    
    R apply(T t);

    // 
    static <T> Function<T, T> identity() {
        
return t -> t; } // default <V> Function<T, V> andThen(Function<? super R, ? extends V> after) { Objects.requireNonNull(after); return (T t) -> after.apply(apply(t)); }

②一套具體實現 位於java.util.stream下

這個稍微複雜一些,單獨看原始碼,不如在網上找一些理論的基礎上便理解邊看。

https://www.runoob.com/java/java8-streams.html

上面這個地址就有!

其實說白了就是

  • stream()− 為集合建立序列流。

  • parallelStream()− 為集合建立並行流。