遍历List集合存储对象时,获取的总是最后一个对象的数据
原因:
对象在遍历的时候赋值,由于最初对象只创建了一次,所以赋予的值都指向同一地址。故此需要在遍历循环中新建对象(适合遍历数据适中的情况,不过初建对象之后就不会引用亦会通过GC回收)
实例:
List<XXX> resutShjdIll = new ArrayList<>();
for (int i=0;i<resultListNew.size();i++) {
String[] streetNameStr = resultListNew.get(i).getStreetName().split(",");
for(int j=0;j<streetNameStr.length;j++){
XXXshjd = new XXX();
BeanUtils.copyProperties(resultListNew.get(i),shjd);// 重要 -> 浅层拷贝
shjd.setStreetName(streetNameStr[j]);
resutShjdIll.add(shjd);
}
}
总结
汇总记录问题