有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

集合如何在Java中找到许多地图的公共部分?

我有许多像Map(String, Object)这样的地图

map1
map2
....
mapN

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


共 (2) 个答案

  1. # 1 楼答案

    是的,你可以使用retainAll

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

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

  2. # 2 楼答案

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

    缺少的步骤是将映射的所有键作为Set获取,这是由Map.keySet()完成的

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