添加到哈希图中的哈希集

Adding to a Hashset inside a Hashmap

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

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

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

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

是的。

假设 gamesAndTeams 已经有 key 的条目,您只需要

gamesAndTeams.get(key).add(newmatch);

...您不需要 put 地图中的任何内容,除非它以前根本不在地图中。

您必须首先检查密钥是否存在于 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);