所以我有两个相同的映射,字符串作为键,整数作为值,我知道在某些事件之后,map2中只有1个值递增1。
Map<String, Integer> map1 = new HashMap<>();
map1.put("First", 1)
map1.put("Second", 2)
map1.put("Third", 3)
Map<String, Integer> map2 = new HashMap<>();
map2.put("First", 1)
map2.put("Second", 3)
map2.put("Third", 3)
所以我的问题是如何返回“第二”键,因为它的值增加了1。
似乎您只想获取键,而不想获取值,所以下面的方法正好可以做到这一点。
public static <K> List mapDifference(Map<? extends K, ? extends Object> map1, Map<? extends K, ? extends Object> map2)
{
List<K> keys = new ArrayList<K>();
Set<Map.Entry<? extends K, ? extends Object>> set;
Map<? extends K, ? extends Object> other;
if(map1.size() > map2.size()) {
set = map1.entrySet(); other = map2;
} else {
set = map2.entrySet(); other = map1;
}
Iterator<Map.Entry<? extends K, ? extends Object>> iterator = set.iterator();
while(iterator.hasNext()) {
Map.Entry<? extends K, ? extends Object> entry = iterator.next();
K key = entry.getKey();
if(!other.containsKey(key) || !other.get(key).equals(entry.getValue())) {
keys.add(key);
}
}
return keys;
}
测试
Map<String, Integer> map1 = new HashMap<>();
map1.put("First", 1);
map1.put("Second", 2);
map1.put("Third", 3);
Map<String, Integer> map2 = new HashMap<>();
map2.put("First", 1);
map2.put("Second", 3);
map2.put("Third", 3);
List<String> diff = mapDifference(map1, map2);
System.out.println(diff);
[Second]
Map<String, Integer> map1 = new HashMap<>();
map1.put("First", 1);
map1.put("Second", 2);
map1.put("Third", 3);
Map<String, Integer> map2 = new HashMap<>();
map2.put("First", 1);
map2.put("Second", 3);
map2.put("Third", 3);
map2.put("Forth", 4);
List<String> diff = mapDifference(map1, map2);
System.out.println(diff);
[Second, Forth]
问题内容: 我想比较同一张表中的两列。我希望能够返回两列具有相同值的所有行。 我正在寻找类似的东西。 因此,在下面的示例中,我将仅返回第一行: 如果有关系,我正在使用(更具体地讲)。 问题答案: 应该管用。不是吗 如果不是,它们是否具有相同的数据类型和长度?您可能需要转换。 我不了解WebSql,但是我看到一些数据库系统拒绝匹配,即使其中一个是varchar(5)而另一个是varchar(10),
问题内容: 如果我想找出两个键中是否没有一个键与另一个键不同,并且该键的值彼此匹配,如何最好地比较两个键。 将A与B进行比较时,由于B和D键的不同,它应该会失败。 如何最好地比较未排序的哈希图? 问题答案: 做一个支票上两者秒。 注意: 如果您包含键,那没有问题,但是如果您的Map包含类型键,则需要确保您的类实现了。
本文向大家介绍C#比较二个数组并找出相同或不同元素的方法,包括了C#比较二个数组并找出相同或不同元素的方法的使用技巧和注意事项,需要的朋友参考一下 本文实例讲述了C#比较二个数组并找出相同或不同元素的方法。分享给大家供大家参考,具体如下: 希望本文所述对大家C#程序设计有所帮助。
问题内容: 提前致谢。感谢您的帮助。 我想比较两个相同类型和结构的任意JToken(NewtonSoft的Json.Net)。 主要目标 是能够使用此方法对两个Json字符串进行排序,以便即使开始时它们具有相同的数据,但顺序不同,最后它们是两个完全相同的字符串。因此排序标准并不重要,重要的是该标准始终相同。并且应该考虑每个小数据元素。 JToken可以是以下几种类型之一:。我没有考虑比较。 获得一
问题内容: 我有两张桌子和。 第一台具有与第二表有田,, 我想要一个帐户进行多少次子请求以及他进行了多少次抓取的计数(基于,如果该帐户中填充了他的) 在一个查询中 输出: 问题答案: 使用类似 诀窍是使用表两次:和,每次由不同的字段联接。 关于效率的注意事项:我不确定,但是我相信这个解决方案比子查询解决方案要快,尽管没有对其进行测试(至少不会慢一些)。只要有可能,我总是更喜欢子查询。