读书人

求大神看看这段代码的异常 急

发布时间: 2013-01-05 15:20:39 作者: rapoo

求大神看看这段代码的错误 急急急!!!
本帖最后由 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);

读书人网 >J2EE开发

热点推荐