我找不到这段代码的错误。我有一个名为“data”的短类型数组。我将data [i]值赋给私有Point对象变量x然后我将此对象添加到ArrayList并继续下一个i。在arraylist中,所有实例都具有相同的值 - 最后一个添加了。你为什么这么认为?
ArrayList<Point> p = new ArrayList<Point>();
System.out.println("start test");
for (int i=0;i<data.length;i++){
bPunkt.x=(int) data[i];
p.add(bPunkt);
System.out.println(""+bPunkt.x);
}
System.out.println("middle of test");
for (int i=0;i<p.size();i++){
System.out.println(""+p.get(i).x);
}
System.out.println("end test");
这就是system.out打印的内容:
start test
1
0
1
3
3
5
3
5
5
4
middle of test
4
4
4
4
4
4
4
4
4
4
end test
答案 0 :(得分:2)
您正在修改同一个实例bPunkt
并将其粘贴在列表中。所以最后你会得到一个包含相同对象的列表。