谷歌番石榴图书馆

时间:2012-01-05 20:52:38

标签: java guava

此问题与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()来查找两个地图中出现的条目。但我不明白我该怎么做。有任何想法吗?感谢。

更新:地图中的键

1 个答案:

答案 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()等来获取交集。

相关问题