所有list都是同一条数据

问题描述:向List中添加对象,打印出来后发现所有对象均为最后一次添加的对象。

问题原因:

例:假如进行初始化时其引用地址为A。

若其在外层进行初始化,虽然for循环了三次,但是对象只在最初初始化了一次,其地址一直为A不变。

那么,第一次循环,存入的值A{0, user0,   address0},  list[0]存入的为地址A。

第二次循环,由于对象未再次初始化,此时A中的值被{1, user1,  address1}覆盖。 list[1]存入的地址为A。

第三次循环同上。 

循环结束后,list中三次存入的地址均为A, 而此时A对应的值为{2, user2,address2}。故打印list中的值时,三次的结果均为最后一次付给对象的值。

所以,为了保证上述问题不出现,只需要将对象初始化的时机放在每次for循环开始时,即循环内。这样就能保证,每个对象的引用都是不同的,也就保证了list中存入的对象的引用的唯一。

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值