java - 添加到 HashMap 中的哈希集

标签 java hashmap hashset

我正在尝试将对象添加到 Hashmap 中的 Hashset。

这里的gamesAndTeams是一个Hashmap,它包含一个Hashset。

我已经查看了网络上的一些教程,但我正在尝试的方法不起作用。
我做错了什么吗?

Match newmatch = new Match(dateOfGame, stad, guestTeam, hostTeam, hostGoals, guestGoals);
gamesAndTeams.put(key, gamesAndTeams.get(key).add(newmatch));

最佳答案

您必须首先检查 key 是否存在于 HashMap 中。如果没有,您应该创建值 HashSet 并将其放入 HashMap 中:

if (gamesAndTeams.containsKey(key))
    gamesAndTeams.get(key).add(newmatch);
else {
    HashSet<Match> set = new HashSet<>();
    gamesAndTeams.put(key,set);
    set.add(newmatch);
}

HashSet<Match> set = gamesAndTeams.get(key);
if (set == null) {
    set = new HashSet<>();
    gamesAndTeams.put(key,set);
}
set.add(newmatch);

关于java - 添加到 HashMap 中的哈希集,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30490666/

相关文章:

java - maven项目中从ejb从子jar访问父ear源

java - 为什么在我将 JComboBox 添加到其中一个 JPanel 中后,所有 JPanel 都没有呈现

C#类型转换: Explicit cast exists but throws a conversion error?

powershell - powershell:创建具有语法错误的通用哈希集?

c# - 为什么 HashSet<Point> 比 HashSet<string> 慢这么多?

java - 在 Android Studio (Java) 中将 ""替换为 _

Java映射,少数按键冲突,解决方法

java - 按照已设置的顺序迭代 HashMap

c++ - 我如何以无序和可变的方式使用 boost::bimap?

Java 泛型 : Comparing the class of Object o to <E>