gpt4 book ai didi

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

转载 作者:行者123 更新时间:2023-12-02 06:06:12 27 4
gpt4 key购买 nike

我找不到这段代码有什么问题。我有一个名为“data”的短类型数组。我将 data[i] 值分配给私有(private) Point 对象变量 x,然后将此对象添加到 ArrayList 并继续下一个 i。在数组列表中,所有实例都具有相同的值 - 最后添加的一个。你认为为什么会这样呢?

    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

最佳答案

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

关于java - 为什么这些变量没有加载到 ArrayList 中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22275680/

27 4 0