繁体   English   中英

从2D数组Java创建1D数组

[英]Create 1D Array from 2D Array Java

我正在尝试编写一个方法,该方法采用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值,您的代码可以继续进行。

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM