我有一个具有值 {A=true, B=false, C=true} 的 HashMap ,另一个具有值 {A=false, B=false, C=false} 的 HashMap 现在我想创建另一个 HashMap ,其中包含在任一 HashMap 中为 true 的元素。 简而言之,我必须使用值必须为 true 的条件来合并两个 HashMap
最佳答案
尚不清楚您是否要尝试过滤条目或合并它们。您可以使用replaceAll()
将所有值与其他 map 合并,如下所示:
Map<String, Boolean> merged = new HashMap<>(map1);
merged.replaceAll((key, value) -> value || map2.get(key));
如果您只想进行过滤,则将结果存储在 map 中是没有意义的。使用一组代替:
Set<String> filtered = Stream.of(map1, map2)
.map(Map::entrySet)
.flatMap(Set::stream)
.filter(Map.Entry::getValue)
.map(Map.Entry::getKey)
.collect(Collectors.toSet());
关于java - 如何通过对值施加任何条件将 2 个 HashMap 添加到 1 个 HashMap ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50592299/