gpt4 book ai didi

java - ArrayList add() 修改第一个条目,添加空条目

转载 作者:行者123 更新时间:2023-12-02 03:53:37 24 4
gpt4 key购买 nike

调试了我的代码,所有变量均按预期显示:

class1 {

callingMethod() {
Double[] entry = new Double[size];

while(condition) {
for (i over entry) {
entry[i] = Double.parseDouble(token.nextToken());
}

DataSet.addInput(entry);
}
}
}


DataSet {
private ArrayList<Double[]> inputsList;

public DataSet (...) {

list = new <Double[]>ArrayList();
}

public void addInput(Double[] anInputVector) {
inputsList.add(anInputVector);
}

}

“theEntry”是用每个新条目正确填充的 double 组。当每个新条目添加到“列表”时,第一个列表条目将使用新的 double 值进行修改,并添加一个空条目。结果是第一个条目是一个 double 组(最后添加),后面是一长串空值。有任何想法吗?

最佳答案

这似乎是共享数组对象的情况。一个例子:

List<double[]> list = new ArrayList<>();

double[] a = new double[] { 1.0, 2.0 };
double[] b = new double[] { 3.0, 4.0 };

// Three new's: three objects.

list.add(a);
list.add(a);
list.add(b);

a[0] = 5.0;
list.get(0)[1] = 6.0;

// list: [ [5.0, 6.0]==a, [5.0, 6.0]==a [3.0, 4.0]==b ]

一种解决方案:

public void addEntry(Double[] theEntry) {
list.add(Arrays.copyOf(theEntry, theEntry.length));
}

关于java - ArrayList add() 修改第一个条目,添加空条目,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35675142/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com