Java 如何将参差不齐的二维阵列转换为矩形二维阵列?

Java 如何将参差不齐的二维阵列转换为矩形二维阵列?,java,arrays,multidimensional-array,jagged-arrays,Java,Arrays,Multidimensional Array,Jagged Arrays,创建一个方法cleanMatrix,该方法接受一个不规则的2Dint数组,并返回一个具有相同值的矩形数组 例如: 输入: {{1, 2, 3, 3, 1, 7}, {6, 8, 7, 1}, {2, 3, 4, 5, 11}, {12}} 输出: {{1, 2, 3, 3, 1, 7}, {6, 8, 7, 1, 0, 0}, {2, 3, 4, 5, 11, 0}, {12, 0, 0, 0, 0, 0}} Int数组初始化为0,因此您可以在需要时扩展子数组。 解决方案可能看起来有点像这样

创建一个方法
cleanMatrix
,该方法接受一个不规则的2D
int
数组,并返回一个具有相同值的矩形数组

例如:

输入:

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

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

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

int[]source=;
最终整数neededSize=;
for(int i=0;i
如果必须将锯齿状二维数组设置为矩形,则可以对每行使用方法并指定新长度:

int-length=6;
int[][]锯齿状={
{1, 2, 3, 3, 1, 7},
{6, 8, 7, 1},
{2, 3, 4, 5, 11},
{12}};
int[][]矩形=数组
.溪流(锯齿状)
.map(行->数组.copyOf(行,长度))
.toArray(int[]]::新建);
Arrays.stream(矩形).map(Arrays::toString).forEach(System.out::println);
//[1, 2, 3, 3, 1, 7]
//[6, 8, 7, 1, 0, 0]
//[2, 3, 4, 5, 11, 0]
//[12, 0, 0, 0, 0, 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];
    }    
}