java - 将 HashSet 的内容与 map 进行比较

标签 java java-8 hashset

我有一个 Map 和一个 HashSet。 目标是根据 Map 检查 Set 的内容,如果元素在 HashSet 中但不在 Map 中,则将其添加到 Map 中。

// Map is defined in a class 
private final Map<String, A> sb = new ConcurrentHashMap<>();

public void someMethod() {
    Set<A> hSet = new HashSet<>();
    for (A a : ab){
        hSet.add(a..a...);

        // Check if all elements added to hash Set are there in a Map 
        // if not present, add it to Map 
    }
}

最佳答案

如果您想在 map 值中搜索:

if(!map.values().contains(a))
   // put a in the map

如果你想找 key

if(!map.containsKey(a))
  // put a in the map

请记住,包含调用 equals,因此在您的 A 类中您必须实现 hashCode 和 equals。

关于java - 将 HashSet 的内容与 map 进行比较,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56246805/

相关文章:

java - ArrayList.sort() 方法中的 IllegalArgumentException

java - Java程序需要构造函数吗

java - 在哪个maven阶段将jsp放在目标上?

java - 尝试使用 ssh 私钥文件设置 Spring Boot 云配置服务器并获取 : ucom. jcraft.jsch.JSchException:USERAUTH 失败

java - 实例化时如何强制一对一对象引用?

java-8 - 为什么 java Map.merge 不通过供应商?

Java Instant Datetime如何获取仅具有时区偏移的日期时间?没有区域信息

c# - Flattern Dictionary<string, HashSet<string>>

java - 如何在对象中存储 Set/HashSet?

java - 我在 Eclipse 中运行我的动态 Web 项目。我收到这个错误,为什么我不知道