在Java Streams中使用toMap代替GroupingBy和Reducing
使用Java Streams時,經常會遇到groupingBy和reducing收集器的情況組合使用。然而,值得探索 Holger 在 StackOverflow 上之前的討論中建議的替代模式。
Holger 表示,每當使用 groupingBy 和ducing 時,建議考慮 toMap 作為更合適的選項。事實證明,這種模式可以有效提高程式碼效率和可讀性。
使用 toMap 的基本原則
這種模式是透過流收集器的實務經驗而出現的。 groupingBy和toMap都有其用途,但toMap在某些場景下表現出一定的優勢。
首先,toMap比groupingBy結合reduce更接近模仿傳統的歸約操作。 toMap 中使用的合併函數與歸約函數類似,儘管其命名法不同。
此外,groupingBy 通常傳回一個可選值,與 groupingBy 一起使用時可能會很不方便。相比之下,toMap 與 groupingBy 無縫集成,避免了這個問題。
總之,toMap 提供了一種簡潔而優雅的方法來將 Java Streams 中的資料分組並減少。雖然這兩種收集器都有自己的位置,但必須認識到 toMap 的優點並考慮將其用作 groupingBy 和減少組合的替代方案。
免責聲明: 提供的所有資源部分來自互聯網,如果有侵犯您的版權或其他權益,請說明詳細緣由並提供版權或權益證明然後發到郵箱:[email protected] 我們會在第一時間內為您處理。
Copyright© 2022 湘ICP备2022001581号-3