6

我正在尝试创建键值对列表。这是我到目前为止所拥有的:

Map<Integer,String> map = new HashMap<Integer,String>().put(songID, songList.get(i).name);

这给了我以下错误:

类型不匹配:无法从 String 转换为 Map

另外,我将如何遍历这些?谢谢!

4

2 回答 2

16

当你调用puttype 的 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);
于 2013-08-24T03:55:42.457 回答
0

这个线程上的答案: Java HashMap associative multidimensional array can't create or add elements

有一个如何做到这一点的例子。

于 2013-08-24T03:58:02.283 回答