list 循环添加元素 最后值一样的问题

这样循环出来,所有的值都会变成最后一个
原因是 ArrayList集合里存的是一个对象的引用。当我们改变对象的值时,之前添加的也会随之改变。
List cptlist=new ArrayList();
 Map cptmap=new HashMap();
for(String cptRange : CPT_Unlock_Range){

CellRangeAddress cptaddress = CellRangeAddress.valueOf(cptRange);
cptmap.put("FirstColumn",cptaddress.getFirstColumn());
cptmap.put("LastColumn",cptaddress.getLastColumn());
cptlist.add(cptmap);
}

改正方法 放到循环里,每次都新建一个
for(String cptRange : CPT_Unlock_Range){
Map cptmap=new HashMap();
CellRangeAddress cptaddress = CellRangeAddress.valueOf(cptRange);
cptmap.put("FirstColumn",cptaddress.getFirstColumn());
cptmap.put("LastColumn",cptaddress.getLastColumn());
cptlist.add(cptmap);
}
posted @ 2021-06-15 12:02  一杯清茶一本书  阅读(421)  评论(0编辑  收藏  举报