java - 向映射添加重复值,无需外部库
问题描述
我有一段代码循环遍历一个列表并构建一个包含日期作为键和值的映射Pair<BigDecimal, Currency>>
。它为每种货币循环。它在第一个循环中正确地构建了地图,但是由于共享日期和密钥,因此每个循环之后都会替换数据。
我如何更改下面的逻辑来处理构建共享日期的地图以防止不同货币的金额加在一起?
解决方案
考虑使用Guava库 中的Multimap 。
它会像一个Map<Date, List<Pair>>
.
以下是来自 javadoc 的描述:
将键映射到值的集合,类似于 Map,但其中每个键可能与多个值相关联。您可以将 multimap 的内容可视化为从键到非空值集合的映射: