今天要做一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,请问这是为什么?