gpt4 book ai didi

java - 如何通过键和值比较两个映射并将差异映射存储在结果映射中

转载 作者:行者123 更新时间:2023-12-01 13:31:12 25 4
gpt4 key购买 nike

假设我有两张 map :

Map mapA = new HashMap();
Map mapB = new HashMap();

mapA.put("JEETENDRA", "24");
mapA.put("AHUJA", "24"); --1A
mapA.put("AHUJA", "25");---2A
mapA.put("PAL", "24");

mapB.put("AHUJA", "24");
mapB.put("JEETENDRA", "24");---1B
mapB.put("PAL", "24");

现在我想通过键和值比较两个 map ,因为 2A 和 1A 有共同的键。我知道理想情况下它是错误的,因为键对于 map 来说应该是唯一的,但在代码中我正在检索两列记录并将其存储为 map 。

MapA 在操作之前。
MapB 经过一些操作。

最佳答案

你可以使用这种方法,这里我使用了泛型,并且我使用了一个名为 result 的 TreeMap 来保存两个 HashMap 中的所有键,通过这种方法你将获得 Hashmap 中所有匹配的对象

public static <K extends Comparable<? super K>, V>
Map<K, Boolean> compareKeysAndValues(final Map<K, V> map1,
final Map<K, V> map2){
final Collection<K> allKeys = new HashSet<K>();
allKeys.addAll(map1.keySet());
allKeys.addAll(map2.keySet());
final Map<K, Boolean> result = new TreeMap<K, Boolean>();
for(final K key : allKeys){
result.put(key,
map1.containsKey(key) == map2.containsKey(key) &&
Boolean.valueOf(equal(map1.get(key), map2.get(key))));
}
return result;
}

如果您想获取不同的值,只需反转 result.put 函数中的检查即可

关于java - 如何通过键和值比较两个映射并将差异映射存储在结果映射中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21559811/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com