添加到Hashmap内的Hashset

时间:2015-05-27 18:43:59

标签: 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));

2 个答案:

答案 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地图中的任何内容,除非之前根本不在地图中。