2016-04-03 158 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); 
} 
相關問題