黑马程序员技术交流社区
标题:
求详细解释
[打印本页]
作者:
jinxiaodong
时间:
2016-1-3 09:50
标题:
求详细解释
public class Test1 {
public static void main(String[] args){
Data data=new Data();
ArrayList<Data> list=new ArrayList<Data>();
for(int i=100;i<103;i++){
data.val=i;
list.add(data);
}
for(Data d:list){
System.out.println(d.val);
}
}
}
class Data{
int val;
}
复制代码
为什么结果不是100,101,102,而是102,102,102。求大神帮忙详细解释下。
作者:
安仔
时间:
2016-1-3 11:39
本帖最后由 安仔 于 2016-1-3 11:41 编辑
因为你存储进List的是同一个对象data,你可以采用
Data data0 = list.get(0);
Data data1 = list.get(1);
System.out.println(data0.equals(data1));
复制代码
来测试我说的问题。相当于你存Person对象,你存多少个lisi对象,你最终都将年龄设置为103,那怎么取这个对象,lisi的年龄都是103
作者:
jinxiaodong
时间:
2016-1-4 08:02
安仔 发表于 2016-1-3 11:39
因为你存储进List的是同一个对象data,你可以采用
来测试我说的问题。相当于你存Person对象,你存多少个lis ...
谢谢解答{:3_65:}
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2