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