这个问题在这里已经有答案了:
合并具有重复键的数组Map(8个答案)
将Map列表合并为单个Map(5个答案)
29天前关门了。
我有一份 HashMap<Integer, ArrayList<String>>
想把它们合并成一个循环。问题是,每个Map的键从0开始,因此这些键将被复制。这个 putAll()
不工作,因为它覆盖了关键点,总是给我最后的Map。
我见过使用stream合并两个Map的例子,但在我的例子中,可能有两个以上的Map。我正在尝试生成一个具有增量键的合并Map。例如:
假设列表中有2个Map(可能更多),两个键都从0开始,但以不同的值结束。
第一张Map,键从0开始到10结束
第二张Map,键从0开始到15结束
有没有可能用11开始的键添加第二张Map?最后,我需要一个合并的Map,其中第一个键开始于0,最后一个键结束于25。
4条答案
按热度按时间ix0qys7i1#
我会迭代你拥有的任意数量的Map,然后对于你想要组合的每个Map,迭代这些条目。对于您可以使用的每个条目
computeIfAbsent
有条件地为键创建一个空列表,然后调用addAll
价值观。例如。:7xzttuei2#
如果你喜欢溪流方法
kkbh8khc3#
假设您有一个Map列表,其中每个Map的键都是范围内的整数
[0-k], [0-n], [0, r] ...
生成的Map应该是[0 - (k+n+r..)]
下面这样的方法应该有用:dbf7pr2w4#
我知道你想要一张Map,但根据你的解释,你的最终解决方案,以及你的密钥现在是从0开始的连续整数,你可以创建一个
List<List<String>>
. 在这种情况下,你可以这样做: