3 回答

TA貢獻1993條經驗 獲得超6個贊
聲明:
positions = new double[][]{{value.x, value.y}};
每次重新分配引用。最后,將“指向”(包含)最后一個元組,這就是為什么你把它看作是結果。positions

TA貢獻1875條經驗 獲得超5個贊
您可以做的是使用傳統的 for 循環來實現結果:
positions = new double[positionsArrayList.size()][2];
for(int i =0; i < positionsArrayList.size(); i++){
positions[i][0] = positionsArrayList.get(i).getX();
positions[i][1] = positionsArrayList.get(i).getY();
}

TA貢獻1850條經驗 獲得超11個贊
您可以為每個索引分配每個坐標值,例如:
double[][] positions = new double[positionsArrayList.size()][2];
for (int i = 0; i < positionsArrayList.size(); i++) {
positions[i][0] = positionsArrayList.get(i).x;
positions[i][1] = positionsArrayList.get(i).y;
}
或者,如果您熟悉直播:
double[][] positions= positionsArrayList.stream()
.map(coords -> new double[]{coords.x, coords.y})
.toArray(double[][]::new);
添加回答
舉報