2016-04-03 157 views
-1

我有一个我的java代码的问题,我希望有人可以帮助我。将值添加到列表<Map <String,String >>

我需要帮助将值添加到类型列表List<Map<String, String>>

我试着用myList.add(map.put(value1, value2)),但那是错误的。

List<Map<String, String>> myList = null; 
Map<String, String> map = null; 

for (int i=0; i<daysList.getLenght(); i++) 
{ 
    myList.add(map.put(value1, value2)); //This line is not working 
} 
+0

你应该初始化列表和映射并正确使用AbstractMap.SimpleEntry或诸如此类而不是Map。 – zyexal

回答

2

Map#put方法不返回地图,如果没有该键的映射关系,则返回与key关联的先前值,或者为null。

如果你想在地图添加到列表中,你需要做这样的事情:

map.put(value1, value2); 
myList.add(map); 
+1

谢谢!我接受了你的答案,因为你是第一个给我正确答案的人。 – user2939293

1

您需要更改代码,如下

for (int i=0; i<daysList.getLength(); i++){ 
    Map<String, String> map = new HashMap<String,String>(); 
    map.put(value1, value2); 
    myList.add(map); 
} 

方法put()从Map.java返回

先前与键关联的值,如果没有键映射,则返回null。 (返回null还可能表示该映射以前null与key关联,如果实现支持null值。)

你的列表需要Map对象但您提供与作为key关联的先前值不是Map类型。

1

你不能那样做。 尝试成才一样,

List<Map<String, String>> myList = null; 
Map<String, String> map = null; 

for (int i=0; i<daysList.getLenght(); i++) 
{ 

    map.put(value1, value2) //map is null so this line will throw NullPointerException 
    myList.add(map); //Also mylist is null if you fix map null problem another NullPointerException is thrown here 
} 
+0

*“抛出另一个NullPointerException异常”* ...呃,不是真的; P,因为已经有一个异常,所以方法将在那里退出。 – Tom

+0

@Tom每个人都知道我的意思是“修好第一行后,第二个问题会从这里来”。我已经编辑并试图解释答案;) –

1

你需要创建一个实现Map接口的类的实例(例如,一个HashMap<>)列表的地方:

for (int i = 0; i < daysList.getLenght(); i++) { 
    Map<String, String> map = new HashMap<>(); 
    map.put(value1, value2) 
    myList.add(map); 
} 
相关问题