3 回答
TA贡献1993条经验 获得超5个赞
声明:
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);
添加回答
举报