【发布时间】:2020-12-16 06:55:22
【问题描述】:
我有多个数组映射。
Map<String, List<String>> map1 = new HashMap<>();
Map<String, List<String>> map2 = new HashMap<>();
Map<String, List<String>> map3 = new HashMap<>();
Map<String, List<String>> map4 = new HashMap<>();
我想从多个地图中获取重复地图键的列表。
例如
map1.put("k0", Arrays.asList("a0", "a1"));
map1.put("k1", Arrays.asList("b0", "b1"));
map2.put("k1", Arrays.asList("z1", "z2"));
map2.put("k2", Arrays.asList("z1", "z2"));
map3.put("k1", Arrays.asList("z1", "z2"));
map3.put("k3", Arrays.asList("z1", "z2"));
map4.put("k3", Arrays.asList("z1", "z2"));
map4.put("k4", Arrays.asList("z1", "z2"));
map5.put("k0", Arrays.asList("z1", "z2"));
map5.put("k5", Arrays.asList("z1", "z2"));
// Expected output is
List: [k0, k1, k3]
除了遍历所有映射键,检查集合是否包含键,如果不将键添加到集合中,我想不出任何更简洁的方法来做到这一点。有没有办法通过流来实现这一点?
【问题讨论】:
-
您不需要检查 Set 是否包含键,因为 Set 项目是唯一的。只需迭代抛出所有键,将它们添加到集合中并使用结果。
标签: java java-stream