亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定

Java代碼片段之StreamBinder數據分組簡化

標簽:
Java

什么是分组,在写业务代码时候,经常会遇到分组的需求,将数据根据某一个条件分组成一对多,或者拆分成一对一的关系。JDK是对Stream提供了分组的方法但是不是特别好用,代码写起来也不够精简,为了让业务代码更加精简,实现业务更简单。对数据分组抽象出一种分组能力。就是StreamBinder。

image.png

一、 为什么要精简它

因为记不住这个API,分组就是分组,但是方法是collect()。确实记不住,于是乎就对原始方法进行一个分组。但是遇到一个问题,是自己实现分组,还是使用上面那种分组呢? 通过Stream方法进行分组,在处理大批量数据时候效率会稍微高一点,但是处理几万时间并没有自己实现的效率高。

二、一对多分组

image.png

三、一对多分组并重新生成数据

可以看到下面代码是在上面代码的基础上,提供了一个valueApply映射。进行分组之后会在执行valueApply生成新的数据类型

image.png

四、一对一分组

一对一可以叫分组,也可以叫拆分。在项目中我们经常会处理一对一的映射关系。比如根据名字就找到指定的人。既然是一对一映射关系,如果出现了一对多关系就报一个异常 DuplicateFormatFlagsException。

image.png
image.png

可能用户想自定义异常,同样提供构造实现

image.png

五、快速使用

        <dependency>
            <groupId>com.hanframework</groupId>
            <artifactId>common-toolkit</artifactId>
            <version>1.0.0-RELEASE</version>
        </dependency>
點擊查看更多內容
TA 點贊

若覺得本文不錯,就分享一下吧!

評論

作者其他優質文章

正在加載中
全棧工程師
手記
粉絲
7
獲贊與收藏
36

關注作者,訂閱最新文章

閱讀免費教程

  • 推薦
  • 評論
  • 收藏
  • 共同學習,寫下你的評論
感謝您的支持,我會繼續努力的~
掃碼打賞,你說多少就多少
贊賞金額會直接到老師賬戶
支付方式
打開微信掃一掃,即可進行掃碼打賞哦
今天注冊有機會得

100積分直接送

付費專欄免費學

大額優惠券免費領

立即參與 放棄機會
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號

舉報

0/150
提交
取消