如何将参差不齐的二维数组转换为矩形二维数组?

问题描述

创建一个方法 cleanMatrix,它接受​​一个参差不齐的二维 int 数组,并返回一个具有相同值的矩形数组。

例如:

输入:

{{1,2,3,1,7},{6,8,7,1},{2,4,5,11},{12}}

输出

{{1,0},11,{12,0}}

解决方法

如果你必须制作一个锯齿二维数组矩形,你可以对每一行使用Arrays.copyOf方法并指定一个新的长度:

ir.ui.view(3822,)
,

Int 数组初始化为 0,因此您可以在需要时扩展子数组。 解决方案可能看起来有点像这样(未经测试)。

int[][] source = <your source array>;

final int neededSize = <length you want extend the subs to>;

for(int i = 0; i < source.length; i++){
    if(source[i].length < neededSize){
        source[i] = getExtendedArray(source[i]);
    }
}

int[] getExtendedArray(int[] originalArr){
    int[] tempArr = new int[neededSize];
    for(int x = 0; x < originalArr.length; x++){
        tempArr[x] = originalArr[x];
    }    
}