我正在尝试创建键值对列表。这是我到目前为止所拥有的:
Map<Integer,String> map = new HashMap<Integer,String>().put(songID, songList.get(i).name);
这给了我以下错误:
类型不匹配:无法从 String 转换为 Map
另外,我将如何遍历这些?谢谢!
我正在尝试创建键值对列表。这是我到目前为止所拥有的:
Map<Integer,String> map = new HashMap<Integer,String>().put(songID, songList.get(i).name);
这给了我以下错误:
类型不匹配:无法从 String 转换为 Map
另外,我将如何遍历这些?谢谢!
当你调用put
type 的 map 时Map <Integer,String>
,你会得到返回的 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);
这个线程上的答案: Java HashMap associative multidimensional array can't create or add elements
有一个如何做到这一点的例子。