java - 如何通过对值施加任何条件将 2 个 HashMap 添加到 1 个 HashMap

标签 java

我有一个具有值 {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/

相关文章:

java - 在 Android 应用程序中使用 Quasar Fibers

java.net.SocketException : Connection reset With HTTPConnection

JAVA + try catch(FileNotFoundException e) 进入 catch(Exception e)?

java - 添加到 hashmap 和 arraylist

java - 合并排序中的交换计数

java - spring 任意消息 TCP 套接字

java - 无法制作两行的双向 View

java - 启动 Eclipse 4.4 时出错 "Version 1.6.0_65 of the JVM is not suitable for this product."

java - 如何准确地确定文件中的 mime 数据?

java - 未找到响应类 ArrayList 的消息正文编写器