我有两张地图:
Map1.put(a,1)
Map1.put(b,2)
Map1.put(c,3)
Map1.put(d,4)
Map2.put(a,1)
Map2.put(b,5)
Map2.put(c,3)
Map2.put(d,4)
Map2.put(e,6)
Map2.put(f,9)
如何比较Map1和Map2的相同键值?如果密钥在Map2中不匹配,则忽略该密钥。
答案 0 :(得分:3)
获取每张地图的keySet()
并使用ContainsAll()
方法
Map<String, Integer> Map1 = new HashMap<>();
Map1.put("a", 1);
Map1.put("b", 2);
Map1.put("c", 3);
Map1.put("d", 4);
Map<String, Integer> Map2 = new HashMap<>();
Map2.put("a", 1);
Map2.put("b", 5);
Map2.put("c", 3);
Map2.put("d", 4);
Map2.put("e", 6);
Map2.put("f", 9);
// check if all keys from Map1 are present in Map2
System.out.println(Map2.keySet().containsAll(Map1.keySet()));
答案 1 :(得分:0)
尝试与条目交集。它将检查键和值并返回常用条目。
Map<String, Integer> map1 = new HashMap<>();
map1.put("a", 1);
map1.put("b", 2);
map1.put("c", 3);
map1.put("d", 4);
Map<String, Integer> map2 = new HashMap<>();
map2.put("a", 2);
map2.put("b", 3);
map2.put("c", 4);
map2.put("d", 5);
map2.put("e", 6);
map2.put("f", 9);
Collection<Map.Entry<String, Integer>> commonValues = CollectionUtils.intersection(map1.entrySet(), map2.entrySet());
System.out.println(CollectionUtils.isEmpty(commonValues)); // if empty, then no same key and value found.
单独使用键:
Collection<String> commonKeys = CollectionUtils.intersection(map1.keySet(), map2.keySet());
答案 2 :(得分:0)
这是另一个简单的解决方案。
Map1.keySet().retainAll(Map2.keySet());
Map1.keySet()仅包含两个集合中的键