黑马程序员技术交流社区
标题:
List集合 高级for循环时 的错误
[打印本页]
作者:
ㄗs:/|丶hearts
时间:
2013-7-19 17:47
标题:
List集合 高级for循环时 的错误
本帖最后由 ㄗs:/|丶hearts 于 2013-7-19 21:33 编辑
import java.util.ArrayList;
class Data {
int val;
}
public class Test5 {
public static void main(String args[]) {
Data data = new Data();
ArrayList list = new ArrayList();
for (int i = 100; i < 103; i++) {
data.val = i;
list.add(data);
}
for (Data d : list) { //这里为什么会报错呀
System.out.println(d.val);
}
}
}
复制代码
作者:
刘张朋
时间:
2013-7-19 19:08
这里遍历出来的应该是一个Object对象,你下面的改应该就可以了,还有就是你这应该是一个对象修改val属性后存进去多次哈,运行出来的结果应该是打印3个102啊,
for (Object obj : list) {
Data d = (Data)obj;
System.out.println(d.val);
}
复制代码
作者:
在乎..
时间:
2013-7-19 20:03
1.List 集合中存储的都是对象 ,即Object ,你这个肯定会 出错。
2.我想你是想打印出 100,101,102 吧,应该这样改咯,因为你存储的都是同一个对象。
class Data {
int val;
}
public class Test5 {
public static void main(String args[]) {
ArrayList list = new ArrayList();
for (int i = 100; i < 103; i++) {
Data data = new Data();
data.val = i;
list.add(data);
}
for (Object obj : list) {
Data d=(Data)obj;
System.out.println(d.val);
}
}
}
复制代码
望好好理解。
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2