java - HashMap 比较

标签 java hashmap

我有两个 HashMap 。这只是 2 个 HashMap 的示例,可以有 n 个 HashMap 。

他们看起来像这样

HashMap A = [(a, 23),(b,25),(c,43),(d,34)]
HashMap B = [(a, 32),(b,52),(d,55)]

现在我想以这种方式比较这些 HashMap ,以便我可以将 'c' 的缺失键放入值为 0 的 HashMap B 中。

我该怎么做?记住可以有 n 个 HashMap。

最佳答案

Guava这里有一些可以帮助你的东西:

Map<K, V> a = ...
Map<K, V> b = ...
MapDifference<K, V> difference = Maps.difference(a, b);

A MapDifference然后允许您检查有关两个 map 差异的各种事情,例如左边 Map 有哪些条目右边没有,反之亦然。

如果你想确保 a 中没有 b 没有的条目,你可以这样做:

b.putAll(difference.entriesOnlyOnLeft());

你如何处理一系列 map 取决于你需要对它们做什么,你没有真正解释......但你可以循环遍历它们,对每对 map 执行上述操作,以确保例如,最后一张 map 至少包含所有其他 map 中的每个条目。

关于java - HashMap 比较,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4159414/

相关文章:

java - 如何将小程序中创建的图片保存到指定文件夹?

java - 如何使 Java 与 SQL Server 一起工作?

javascript - 如何使数据表列可点击

java - 如何通过 Main - NullpointerException 错误更改进度条的值

java - 处理数学公式

java - HashMap.entryset()返回的Set,是如何排序的?

java - 如何方便 Netbeans Designer 加载使用 hashmap 进行枚举反向查找的 JPanel?

java - 如何使用生成的 id 检查记录的唯一性?

Perl - Hash::Merge 丢失 key

java - DOM 解析器读取 Xml、检索属性值并存储它们