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数据分组简化「建议收藏」


分享到:


相關文章: