你一直在把data引用往list集合中去加,加了三次。最后一次将data的val值设置为102.所以打印三次每次都是102.你若想得到结果:100 101 102 。可以new出三个Data对象。分别指定val的值,或者一个对象设置三次val值,然后将val值加入list集合中。下面代码是后一种情况(Data类没改,只改的main方法):
public class ListTest {
public static void main(String argv[]) {
Data data = new Data();
ArrayList list = new ArrayList();
for (int i = 100; i < 103; i++) {
data.setVal(i);
list.add(data.getVal()); //每次加入不同val值,用了基本类型的自动装箱
}
int j = 0;
while (j < list.size()) {
// Data tmp = (Data )list.get(j);
System.out.println("list(" + j + ") = " + list.get(j)); //打印结果
j++;
}
}
}