创建键值对象列表

时间:2013-08-24 03:52:44

标签: java data-structures hashmap key-value

我正在尝试创建一个键值对列表。以下是我到目前为止的情况:

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

这给了我以下错误:

  

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

另外,我将如何迭代这些?谢谢!

2 个答案:

答案 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

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