我认为这很容易,但我很挣扎......我想向一个方法发送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");
答案 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);