gpt4 book ai didi

java - 如何在 Java 中将 2D 数组插入到空的 3D 数组中?

转载 作者:行者123 更新时间:2023-12-04 08:05:33 27 4
gpt4 key购买 nike

我是 Java 新手,我想知道如何使用 Java 中的嵌套 for 循环将 2D 数组(当然还有元素)插入到空的 3D 数组中?

String[][][] ProductAllData2 = new String[10][getPInputsWithParameter(getPInputs()).length][getPInputsWithParameter(getPInputs()).length];

String [][] receivedPInputsWithParameter = getPInputsWithParameter(getPInputs());

for(int i = 0; i < ProductAllData2.length; i++) { //Inserts in 3D array

for(int j = 0; j < ProductAllData2[i].length; j++) {
ProductAllData2[i][j] = new String[receivedPInputsWithParameter[j].length];

for(int k = 0; k < ProductAllData2[i][j].length; k++) {
ProductAllData2[i][j][k] = receivedPInputsWithParameter[j][k];
}
}
}

最佳答案

在java中二维数组是数组的数组;因此,二维数组(行/列)的每一行都具有相同的大小并不是强制性的。
3D 数组也是如此:这是一个 2D 数组的数组。
因此,要将二维数组插入到 3D 数组中,您只需要将 2D 数组设置为具有 2D 元素的 1D 数组。

int[][][] dest = {
// id = 0
{
{ 1, 2, 3 },
{ 4, 5, 6 }
},
// id = 1
{
{ 7, 8, 9 },
{ 10, 11, 12 }
}
};

int[][] src = {
{ 77, 88, 99 },
{ 1010, 1111, 1212 }
};

dest[1] = src; // replace 2D array with id = 1
一个注意事项是,在上面的实现中,一个数组 src现在是指数组的一部分 dest ,所以修改 src将在 dest 中可见.为避免这种影响,您必须创建 src 的新副本。数组并将其插入 dest :
private static void insert(int[][][] dest, int[][] src, int id) {
int rows = src.length;
dest[id] = new int[rows][];

for (int row = 0; row < rows; row++)
dest[id][row] = Arrays.copyOf(src[row], src[row].length);
}

关于java - 如何在 Java 中将 2D 数组插入到空的 3D 数组中?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/66240454/

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