Java Stream API 提供了許多中間操作,這些操作可以在流上執行并返回一個新的流。以下是一些常用的中間操作:
- filter:過濾流中的元素,只保留滿足給定條件的元素。
- map:將流中的每個元素轉換為另一種形式,通常用于提取或計算屬性。
- flatMap:將流中的每個元素轉換為一個流,然后將所有流連接成一個單一的流。
- distinct:去除流中的重復元素。
- sorted:對流中的元素進行排序,可以根據自定義比較器進行排序。
- peek:在流的每個元素上執行一個操作,并返回一個包含相同元素的新流。這個操作不會改變流本身。
- limit:限制流的大小,只保留前 n 個元素。
- skip:跳過流中的前 n 個元素,返回一個包含剩余元素的新流。
- parallel:將流轉換為并行流,以利用多核處理器進行并行操作。
- sequential:將并行流轉換為順序流,以便按順序處理元素。
- unordered:移除流中的元素的順序,以便在某些操作中提高性能。
這些中間操作都是惰性求值的,也就是說,它們不會立即執行,而是在終端操作(如 collect、forEach 等)被調用時才會執行。這使得我們可以鏈式地組合多個中間操作來完成復雜的數據處理任務。