我有两个 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/