1. 程式人生 > >【Java8新特性】Stream API有哪些中間操作?看完你也可以吊打面試官!!

【Java8新特性】Stream API有哪些中間操作?看完你也可以吊打面試官!!

## 寫在前面 > 在上一篇《[【Java8新特性】面試官問我:Java8中建立Stream流有哪幾種方式?](https://www.cnblogs.com/binghe001/p/12961977.html)》中,一名讀者去面試被面試官暴虐!歸根結底,那哥兒們還是對Java8的新特性不是很瞭解呀!那麼,我們繼續講述Java8的新特性,旨在最終可以讓每位讀者在跳槽面試的過程中吊打面試官!! ## Stream的中間操作 多箇中間操作可以連線起來形成一個流水線,除非流水線上觸發終止操作,否則中間操作不會執行任何的處理!而在終止操作時一次性全部處理,稱為“惰性求值” 。 Stream的中間操作是不會有任何結果資料輸出的。 Stream的中間操作在整體上可以分為:篩選與切片、對映、排序。接下來,我們就分別對這些中間操作進行簡要的說明。 ## 篩選與切片 這裡,我將與篩選和切片有關的操作整理成如下表格。 | 方法 | 描述 | | ------------------- | ------------------------------------------------------------ | | filter(Predicate p) | 接收Lambda表示式,從流中排除某些元素 | | distinct() | 篩選,通過流所生成元素的 hashCode() 和 equals() 去 除重複元素 | | limit(long maxSize) | 截斷流,使其元素不超過給定數量 | | skip(long n) | 跳過元素,返回一個扔掉了前 n 個元素的流。若流中元素 不足 n 個,則返回一個空流。與 limit(n) 互補 | 接下來,我們列舉幾個簡單的示例,以便加深理解。 為了更好的測試程式,我先構造了一個物件陣列,如下所示。 ```java protec