为什么这些变量没有加载到ArrayList中

时间:2014-03-08 22:07:39

标签: java arraylist

我找不到这段代码的错误。我有一个名为“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

1 个答案:

答案 0 :(得分:2)

您正在修改同一个实例bPunkt并将其粘贴在列表中。所以最后你会得到一个包含相同对象的列表。

相关问题