添加到哈希图中的哈希集
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);
我正在尝试将对象添加到 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);