我正在尝试将对象添加到Hashmap中的Hashset。
此处gamesAndTeams
是一个Hashmap,它包含一个Hashset。
我已经通过网络查看了一些教程,但我尝试的并不是在工作。
我做错了吗?
Match newmatch = new Match(dateOfGame, stad, guestTeam, hostTeam, hostGoals, guestGoals);
gamesAndTeams.put(key, gamesAndTeams.get(key).add(newmatch));
答案 0 :(得分:2)
您必须首先检查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);
答案 1 :(得分:1)
是
假设gamesAndTeams
已有key
条目,您只需要
gamesAndTeams.get(key).add(newmatch);
...你不需要put
地图中的任何内容,除非之前根本不在地图中。