本帖最后由 马小龙 于 2012-9-13 21:26 编辑
package com.itheima;
import java.util.ArrayList;
class Data {
int val;
int getVal() {
return val;
}
void setVal(int val) {
this.val = val;
}
}
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);//分别往ArrayList装入3个Data对象,这三个Data对象的val分别是100,101,102
list.add(data);
}
int j = 0;
while (j < list.size()) {//
Data tmp = (Data )list.get(j); //循环获得这三个数据,并强转成Data对象
System.out.println("list(" + j + ") = " + tmp.getVal());
j++;
}
}
}
/*
这个问题好奇怪,自己按照思路得出的答案是
list(0)=100 list(1)=101 list(2)=102
为什么编译运行后是
list(2)=102 list(2)=102 list(2)=102
*/
请大神详细解答一下 |