list循环按序存值,但是循环取的时候总是取同一条,求高手解惑

List listUpdated = new ArrayList();
JSONArray storearray = JSONArray.fromObject(updated);
for (int i = 0; i < storearray.size(); i++) {
Store tmp = new Store();
tmp.setCityName(storearray.getJSONObject(i).getString("cityName"));
System.out.println("存" + tmp.getCityName());
listUpdated.add(tmp);
}
for (Store ss: listUpdated){
System.out.println("取"+ ss.getCityName());
}
两个循环,第一个循环存了2个值,但是第2个循环只取到1个值得,为何啊?

控制台显示:

  • 存武汉
  • 存广州
  • 取广州
  • 取广州

应该是Store类本身写的有问题。看看是不是cityName最后是存到一个static属性去了

诡异现象,请贴出完整代码,可能跟你的代码逻辑有关。

目测是Store 类的setCityName方法有问题

因为你这只存了2次值,不足以说明问题的,如果存进去n个值,n次取值都是第一个,就是你这代码有问题,如果n次存值,得到的却只有n-1个值,可能是第n个值还在缓存中并没有被读到内存中。所以希望你能多存几个值再测试一下。[quote][/quote]

可否把 Store类贴出来?

设断点,debug不是一目了然吗

请检查Store 类的setCityName方法