我的java代码有问题,希望有人可以帮助我。
我需要帮助将值添加到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 :(得分:2)
Map#put方法不返回地图,它返回与key关联的先前值,如果没有关键字映射,则返回null。
如果您想将地图添加到列表中,您需要执行以下操作:
map.put(value1, value2);
myList.add(map);
答案 1 :(得分:1)
您需要更改以下代码
for (int i=0; i<daysList.getLength(); i++){
Map<String, String> map = new HashMap<String,String>();
map.put(value1, value2);
myList.add(map);
}
Map.java中的方法put()
返回
与key关联的上一个值,如果没有key的映射,则返回null。 (如果实现支持空值,则null返回也可以指示映射先前将null与key关联。)
您的列表需要地图对象,但您提供的是与该键不匹配的键相关联的先前值。
答案 2 :(得分: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
}
答案 3 :(得分:1)
您需要创建一个实现Map
接口的类的实例(例如,HashMap<>
)以放置在列表中:
for (int i = 0; i < daysList.getLenght(); i++) {
Map<String, String> map = new HashMap<>();
map.put(value1, value2)
myList.add(map);
}