今天要做一map的平行遍历,就是一个map(A)中存了另一个map(B)的key,然后就发现,在遍历后,存值的(B)莫其妙变大了,果断写了个小页面做了下测试代码如下:
<tr> <td style="width:100px;">遍历前</td> <td style="width:100px;"><s:property value="markingStatistic.taskList.size()"/></td> </tr> <tr> <td style="width:100px;">遍历</td> <td style="width:100px;"><s:property value="markingStatistic.taskList['adfasd']"/></td> </tr> <tr> <td style="width:100px;">遍历后</td> <td style="width:100px;"><s:property value="markingStatistic.taskList.size()"/></td> </tr>
这是java类:
public class MarkingStatistic { private List<String> examinationQuestionId = new ArrayList<String>();//试题ID列表 private Map<String, MarkingStatisticPerson> taskList = new HashMap<String,MarkingStatisticPerson>();//每个人的详细情况 public List<String> getExaminationQuestionId() { return examinationQuestionId; } public void setExaminationQuestionId(List<String> examinationQuestionId) { this.examinationQuestionId = examinationQuestionId; } public Map<String, MarkingStatisticPerson> getTaskList() { return taskList; } public void setTaskList(Map<String, MarkingStatisticPerson> taskList) { this.taskList = taskList; } }
这是结果:
分析后,发现,只要是那个key在原来的里面不存在的,都会自动加1,请问这是为什么?