(java)为什么输出结果都是一样的数值
publicclassTest{publicstaticvoidmain(Stringargs[]){Datadata=newData();ArrayList<Data>...
public class Test {
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);
}
}
} 展开
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);
}
}
} 展开
4个回答
展开全部
因为data是一个对象 向list中存入的是data在内存中的路径 你在这里修改的都是同一个对象.也就是说你的list集合里面存的路径全部是一样地,修改的值也是同一个data对象.所以当你循环的时候 输出的也就是相同的值了!
要想输出的值不同 可以在循环里面获取data对象
要想输出的值不同 可以在循环里面获取data对象
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
public class Test {
public static void main(String args[]) {
ArrayList<Data> list = new ArrayList<Data>();
for (int i = 100; i < 103; i++) {
Data data = new Data();
data.val = i;
list.add(data);
}
for (Data d : list) {
System.out.println(d.val);
}
}
}
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
2013-12-05
展开全部
在这里面你的list里面add的是data...所以一直都是一个值
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询