gpt4 book ai didi

java - 从 2D 数组创建一维数组 Java

转载 作者:行者123 更新时间:2023-12-02 11:30:26 24 4
gpt4 key购买 nike

我正在尝试编写一个方法,该方法采用 2D 数组参数并从中创建一个 1D 数组,其长度等于原始数组中的行数。我还希望新数组的行中的元素等于原始数组每行的最小值。如果原始行为空,我希望新数组等于 0.0。我在下面编写了我的方法,但收到了一个 indexOutOfBounds 错误,我不知道为什么......谢谢

enter  public double[] newOneD(double[][] x) {
int xrow = x.length;
int xcol = x[0].length;
double[] y = new double[xrow];
int min = 0;
for (int i = 0; i < xrow; i++){
for (int j = 0; j < xcol; j++) {
if(x[i][j] < x[i][min]) {min = j;}
y[i] = x[i][min];}
}
return y;}

最佳答案

您的错误是由于您假设每行中的列数等于第一行中的列数而引起的:

int xcol = x[0].length; //this is an assumption that doesn't hold true

如果您确实必须使用数组,那么您可以循环遍历所有行并找出必须使用的长度:

int xcol = 0;
for(int i = 0; i < xrow; i++) {
xcol = Math.max(xcol, x[i].length);
}

使用这个新的 xcol 值,您的代码可以继续进行。

您也可以考虑使用灵活的数据结构,例如数组列表。

关于java - 从 2D 数组创建一维数组 Java,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49327591/

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