Java代碼片段之StreamBinder數據分組簡化「建議收藏」

什麼是分組,在寫業務代碼時候,經常會遇到分組的需求,將數據根據某一個條件分組成一對多,或者拆分成一對一的關係。JDK是對Stream提供了分組的方法但是不是特別好用,代碼寫起來也不夠精簡,為了讓業務代碼更加精簡,實現業務更簡單。對數據分組抽象出一種分組能力。就是StreamBinder。


Java代碼片段之StreamFilter過濾器簡化寫法「建議收藏」

程序猿不要在寫日期轉換工具了,萬能代碼片段直接拿走使用。

Java代碼片段之StreamBinder數據分組簡化「建議收藏」


一、 為什麼要精簡它

因為記不住這個API,分組就是分組,但是方法是collect()。確實記不住,於是乎就對原始方法進行一個分組。但是遇到一個問題,是自己實現分組,還是使用上面那種分組呢? 通過Stream方法進行分組,在處理大批量數據時候效率會稍微高一點,但是處理幾萬數據時間並沒有自己實現的效率高。


二、一對多分組

Java代碼片段之StreamBinder數據分組簡化「建議收藏」

三、一對多分組並重新生成數據

可以看到下面代碼是在上面代碼的基礎上,提供了一個valueApply映射。進行分組之後會在執行valueApply生成新的數據類型

Java代碼片段之StreamBinder數據分組簡化「建議收藏」

四、一對一分組

一對一可以叫分組,也可以叫拆分。在項目中我們經常會處理一對一的映射關係。比如根據名字就找到指定的人。既然是一對一映射關係,如果出現了一對多關係就報一個異常


DuplicateFormatFlagsException。

Java代碼片段之StreamBinder數據分組簡化「建議收藏」

Java代碼片段之StreamBinder數據分組簡化「建議收藏」

可能用戶想自定義異常,同樣提供構造實現

Java代碼片段之StreamBinder數據分組簡化「建議收藏」


五. 快速使用


Java代碼片段之StreamBinder數據分組簡化「建議收藏」


分享到:


相關文章: