我有很多地图,例如Map(String, Object)
.
map1
map2
....
mapN
我需要接收仅包含这些键值对的映射,其中第一个参数在所有映射中都相等。可以通过使用retainAll
方法来完成吗?
我有很多地图,例如Map(String, Object)
.
map1
map2
....
mapN
我需要接收仅包含这些键值对的映射,其中第一个参数在所有映射中都相等。可以通过使用retainAll
方法来完成吗?
是的。您获得其中一个集合并retainAll
与所有其他集合一起使用,其余元素对所有集合都是通用的。
缺少的步骤是将地图的所有键作为 a Set
,这是由Map.keySet()
请注意,retainAll
被标记为可选,因此Set
返回的实现可能Map.keySet
没有实现它。在这种情况下,创建一个新的 Set 实例,它支持将原始集合作为参数传递。
是的,您可以使用retainAll
map1.keySet().retainAll(map2.keySet());
map1.keySet().retainAll(map3.keySet()); //etc
最后map1
将是所有地图中所有键的交集,因此这些键现在很常见,您可以轻松检索值