求大神看看这段代码的错误 急急急!!!
本帖最后由 leeleoloo 于 2012-12-27 09:42:21 编辑
private List<Map<String, Object>> getObjectList(PolicyBO policyBO) {
List<Map<String, Object>> sourceObjectList = new ArrayList<Map<String, Object>>();
Map<String, Object> sourceObjectMap = new HashMap<String, Object>();
for (int i = 0; i < policyBO.getInsuredBOList().size(); i++) {
sourceObjectMap.put("insured", policyBO.getInsuredBOList().get(i));
sourceObjectList.add(sourceObjectMap);
}
return sourceObjectList;
}
老大说有严重错误!!!
------解决方案--------------------你这样写的结果是重复的。也就是重复显示第一个。
private List<Map<String, Object>> getObjectList(PolicyBO policyBO) {
List<Map<String, Object>> sourceObjectList = new ArrayList<Map<String, Object>>();
for (int i = 0; i < policyBO.getInsuredBOList().size(); i++) {
Map<String, Object> sourceObjectMap = new HashMap<String, Object>();//放到循环体内才行
sourceObjectMap.put("insured", policyBO.getInsuredBOList().get(i));
// com.ebao.gs.pol.pub.service.upload.constant.UploadingConstants.ENTITY_INSURED
sourceObjectList.add(sourceObjectMap);
}
return sourceObjectList;
}
------解决方案--------------------sourceObjectMap.put("insured", policyBO.getInsuredBOList().get(i));
添加Map的时候key一直是重复的!
HashMap:无序存放的,是新的操作类,key不允许重复.
------解决方案--------------------两个错误
一:sourceObjectMap.put("insured", policyBO.getInsuredBOList().get(i));
导致你的map只有一个对象
二:sourceObjectList.add(sourceObjectMap);
导致你的List里面有重复数据,因为它在for循环里面
不明白你的需求,两种需求,导致最后的东西是不一样的。
一:每个对象都要在一个map里面,所有的然后全写入List
for(){
Map map = new ...
map.put();
list.add(map);
}
二:
map = new ...
for{
map.put("key", );//key不一样
}
list.add(map);