加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > Java > 正文

使用Java 8 Stream API将列表汇总到列表

发布时间:2020-12-14 16:42:33 所属栏目:Java 来源:网络整理
导读:我有以下课程: class Money { CurrencyUnit currencyUnit; BigDecimal amount;} 在我的应用程序中,我得到一些随机的Money对象列表: currencyUnit | amount---------------------EUR | 5.1EUR | 0USD | 1.09EUR | 42USD | 3 现在我想使用Java 8 Stream API
我有以下课程:
class Money {
  CurrencyUnit currencyUnit;
  BigDecimal amount;
}

在我的应用程序中,我得到一些随机的Money对象列表:

currencyUnit | amount
---------------------
EUR          | 5.1
EUR          | 0
USD          | 1.09
EUR          | 42
USD          | 3

现在我想使用Java 8 Stream API创建以下结果(只需为每个货币单位的金额调用BigDecimal :: add):

currencyUnit | amount
---------------------
EUR          | 47.1
USD          | 4.09

我已经知道/做了什么:

Stream<Money> moneyStream = moneyList.stream();

它已经结束了.我知道我可以使用收集器生成Map< CurrencyUnit,List< Money>>:

moneyStream.collect(Collectors.groupingBy(m -> m.getCurrencyUnit());

但是,我仍然必须通过所有键值对并总结数量.

什么是正确的(也可能是最简单的方法)呢?它不可能那么复杂吧?

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读