将字符串作为set的名称添加到地图中

时间:2015-04-30 09:25:01

标签: java string dictionary set

我认为这很容易,但我很挣扎......我想向一个方法发送2个字符串,并将一个作为映射键,另一个作为集合的名称; 编辑:地图声明; 编辑2以添加地图构造函数;

public HashMap<String, Set<String>> playerMap; //edit 1

public Planets()

{       playerMap = new HashMap&lt;&gt;();

} //编辑2

public void addMapEntry(String newPlayerAdd, String newPlanetAdd)

{
  playerMap.put(newPlayerAdd, newPlanetAdd);
}

我收到错误消息

  

论据不匹配   java.util.Map.put(java.lang.String,jaav.util.Set)是   不适用; (....)不能转换为(...)。

我已经在同一个类中创建了地图和以前的集合,所有这些都已经添加好了......

我已将代码更改为

 public void addMapEntry(String newPlayerAdd, Set<String> newPlanetAdd) {
  planetStats = new TreeSet<>(newPlanetAdd);
  playerMap.put(newPlayerAdd, newPlanetAdd);
}

我得到的是同一类型的运行时错误而不是编译时错误; 我觉得我没有以正确的格式将变量传递给方法...任何帮助表示赞赏... 目前以

的形式发送
allPlanets.addMapEntry("Jane", "Klethron");

2 个答案:

答案 0 :(得分:0)

您应该将地图声明为

Map<String, Set<String>> playerMap = new HashMap<String, Set<String>>()

如果您想使用HashMap实现..并且应该将方法调用为

Set<String> set = new HashSet<String>();
set.add("Klethron");
allPlanets.addMapEntry("Jane", set);

答案 1 :(得分:0)

将地图声明为

Map<String, Set<String>> playerMap = new HashMap<String, Set<String>>()

初始化你的套装

Set<String> setString = new HashSet<String>();
setString.add("String1"); //fill up the string set in this way
allPlanets.addMapEntry("Jane", setString);