此问题与previously asked one有关。正如我所建议的那样,我正在尝试使用Google Guava库查找集合交集。
HashMap m1 = new HashMap();
m1.put(1, new Integer[]{1,2,3,4});
m1.put(2, new Integer[]{1,4,5,6});
HashMap m2 = new HashMap();
m2.put(1, new Integer[]{1,5,null,null});
m2.put(2, new Integer[]{1,4,null,null});
现在,据我所知,我应该应用Guava函数entriesInCommon()来查找两个地图中出现的条目。但我不明白我该怎么做。有任何想法吗?感谢。
更新:地图中的键
答案 0 :(得分:5)
添加整数数组在Java的类型系统中不起作用。
当你说
时Set<Integer> s1 = new HashSet<Integer>();
s1.add(new Integer[]{1,2,3,4});
你应该写的是
Set<Integer> s1 = new HashSet<Integer>();
s1.add(1);
s1.add(2);
s1.add(3);
s1.add(4);
或可能
Set<Integer> s1 = new HashSet<Integer>();
s1.addAll(Arrays.asList(1, 2, 3, 4));
构建完这些之后,您可以使用retainAll()等来获取交集。