0

我有很多地图,例如Map(String, Object).

map1
map2
....
mapN

我需要接收仅包含这些键值对的映射,其中第一个参数在所有映射中都相等。可以通过使用retainAll方法来完成吗?

4

2 回答 2

1

是的。您获得其中一个集合并retainAll与所有其他集合一起使用,其余元素对所有集合都是通用的。

缺少的步骤是将地图的所有键作为 a Set,这是由Map.keySet()

请注意,retainAll被标记为可选,因此Set返回的实现可能Map.keySet没有实现它。在这种情况下,创建一个新的 Set 实例,它支持将原始集合作为参数传递。

于 2012-10-16T09:21:21.053 回答
1

是的,您可以使用retainAll

map1.keySet().retainAll(map2.keySet());
map1.keySet().retainAll(map3.keySet()); //etc

最后map1将是所有地图中所有键的交集,因此这些键现在很常见,您可以轻松检索值

于 2012-10-16T09:21:30.247 回答