我正在尝试创建一个键值对列表。以下是我到目前为止的情况:
Map<Integer,String> map = new HashMap<Integer,String>().put(songID, songList.get(i).name);
这给了我以下错误:
类型不匹配:无法从String转换为Map
另外,我将如何迭代这些?谢谢!
答案 0 :(得分:14)
当您在put
类型的地图上调用Map <Integer,String>
时,您将获得返回的字符串。所以当你这样做时:
new HashMap<Integer,String>().put(songID, songList.get(i).name);
它将返回String
当您尝试将其分配到地图时
Map<Integer,String> map
编译器抛出错误,
类型不匹配:无法从String转换为Map
以下是put方法表单javadocs的签名:
public V put(K key,
V value)
你需要打破这个复杂的问题陈述:
Map<Integer,String> map = new HashMap<Integer,String>().put(songID, songList.get(i).name);
类似于:
Map<Integer,String> map = new HashMap<Integer,String>();
map.put(songID, songList.get(i).name);
答案 1 :(得分:0)
这个帖子的答案: Java HashMap associative multi dimensional array can not create or add elements
有一个如何做到这一点的例子。