Java 将字符串作为集合的名称添加到映射

Java 将字符串作为集合的名称添加到映射,java,string,dictionary,set,Java,String,Dictionary,Set,我认为这很容易,但我正在努力…我想向一个方法发送两个字符串,一个作为映射键,另一个作为集合的名称; 编辑:地图声明; 编辑2为地图添加构造器 public HashMap<String, Set<String>> playerMap; //edit 1 public Planets() 我收到了错误信息 参数不匹配 put(java.lang.String,jaav.util.Set)是 不适用;(…)无法转换为(…) 我已经在同一个类中创建了地图和以前的集合,并且所

我认为这很容易,但我正在努力…我想向一个方法发送两个字符串,一个作为映射键,另一个作为集合的名称; 编辑:地图声明; 编辑2为地图添加构造器

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

public Planets()
我收到了错误信息

参数不匹配 put(java.lang.String,jaav.util.Set)是 不适用;(…)无法转换为(…)

我已经在同一个类中创建了地图和以前的集合,并且所有的集合都被很好地添加了

我已将代码更改为

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

你应该将你的地图声明为

Map<String, Set<String>> playerMap = new HashMap<String, Set<String>>()
Map playerMap=newhashmap()
如果您想使用HashMap实现。。并且应该将该方法调用为

Set<String> set = new HashSet<String>();
set.add("Klethron");
allPlanets.addMapEntry("Jane", set);
Set Set=newhashset();
集合。添加(“Klethron”);
allPlanets.addMapEntry(“Jane”,集合);
将地图声明为

Map<String, Set<String>> playerMap = new HashMap<String, Set<String>>()
Map playerMap=newhashmap()
初始化你的集合

Set<String> setString = new HashSet<String>();
setString.add("String1"); //fill up the string set in this way
allPlanets.addMapEntry("Jane", setString);
Set setString=new HashSet();
设置字符串添加(“字符串1”)//用这种方法填充字符串集
allPlanets.addMapEntry(“Jane”,setString);

字符串只是一个字符串,即使它碰巧包含变量名。这意味着你不能用它来代替你需要使用的实际变量。如果试图向地图添加集合,则需要添加集合,而不是包含其变量名称的字符串。是否可以使用playerMap声明编辑问题?如果从第二个代码中删除“planetStats=new TreeSet(NewPlanetAd);”-这一行,会发生什么情况。另外,请包括“playerMap”的声明,该声明经过编辑以添加声明,再次编辑以添加构造函数
哈希集。添加
不会返回
,而是一个布尔值。此外,这可能不是OP想要的(但不确定是什么)。尝试了堆栈溢出编辑器..而不是eclipse..但找不到布尔值:)@tobias…只需要添加键和值以从给定参数映射。
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);