雖然與Java 8 Stream s工作,我有時發現Stream沒有我的願望(例如takeWhile(),dropWhile(),skipLast()
)的具體方法。我如何創建自己的流類,它具有額外的方法,無需重寫整個Java 8架構?一個方法添加到Java 8個流
我知道StreamEx庫,知道它有takeWhile()和dropWhile()。在撰寫本文時,它沒有skipLast()
。我已經爲此方法提交了an issue。
一個可接受的解決方案是展示如何擴展Java 8 Stream或StreamEx。
那麼你或許應該創建一個包裝類,寫自己的流框架 – Dici
你可以創建索引和使用'流過濾器「來獲得你想要的索引,然後將其映射回實際的數據。例如,打印除數組中最後一個元素之外的所有內容,即IntStream.range(0,array.length).filter(i - > i!= array.length-1).mapToObj(i - > array [i])。的forEach(的System.out ::的println);'。但我認爲這不如@LouisWasserman的建議。 – gonzo
我們這裏只是談論語法糖。不是靜態方法的粉絲,因爲它們是流語法的反模式。但是,如果只是一種方法,那麼包裝所有內容的成本是不可接受的 – Dici