为什么我这个循环的出的结果都是另外一个集合最后一个

码云腾 2020-05-11 02:10:49


我想把lonLatModelList集合中的数据组合成一个新的对象从新组成一个集合responseModelList,但是输出显示的都是lonLatModelList的最后一个值
...全文
104 2 打赏 收藏 转发到动态 举报
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
android_cai_niao 2020-05-11
  • 打赏
  • 举报
回复
气死我了,上才艺!!

Person person = new Person();
for(int i = 0; i < 10; i++) {
    person.setName("名字" + i);
    list.add(person);
    System.out.println(list.get(i));
}
这个简单代码地模拟了你出现的问题,可以看到,我们只创建了一个Person对象,因为只new了一次Person,只是在for循环中每次都把同一个Person对象的name属性改变了而已,Person对象还是那个对象,上面的代码每次能打印不一样的人名出来,因为每次打印的时候你都修改了Person的name属性,但是for循环走完之后,list中虽然保存了10个元素,但这10个元素都是同一个对象,它的name属性都是:名字9,这时你再遍历打印list的话,就知道了,全部都是名字9。 如果我的答案解决了你的问题,麻烦结贴给点积分,谢谢^_^
DCF.Zero 2020-05-11
  • 打赏
  • 举报
回复
list存对象引用,把第一行放进循环里

62,624

社区成员

发帖
与我相关
我的任务
社区描述
Java 2 Standard Edition
社区管理员
  • Java SE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧