这是我的第一篇文章,我总是试图找到解决方案,但我没有找到它。
我需要将一个array [] [] []复制到copy [] [] [],但是复制的长度必须比数组长。
我写了这个,但是没有像0那样复制,只是像NULL这样复制并产生了异常。
塔马尼奥市长的多维数组的肠壁菌。
int datos, datos2, datos3, datos4;
System.out.println("De cuantos elementos quiere que sea el array?");
datos=leerInt();
System.out.println("De cuantos elementos quiere que sea el array bidimensional?");
datos2=leerInt();
System.out.println("De cuantos elementos quiere que sea el array tridimensional?");
datos3=leerInt();
int valor[][][]=new int[datos][datos2][datos3];
for (int i=0;i<valor.length;i++){
for (int j=0;j<valor[i].length;j++){
for (int k=0;k<valor[i][j].length;k++){
System.out.println("Introduce el valor para el array"+(i+1)+" de la parte bidimensional "+(j+1)+" de la parte tridimensional "+(k+1));
datos4=leerInt();
valor[i][j][k]=datos4;
}
}
}
int copia[][][]=Arrays.copyOf(valor, valor.length+2);
for (int i=0; i < copia.length; i++) {
for (int j=0; j < copia[i].length; j++) {
for (int k=0; k < copia[i][j].length; k++) {
System.out.println("Los valores copiado es: "+ copia[i][j][k]);
}
}
}
答案 0 :(得分:1)
实际上,答案很简单,您只需要做以下三件事:
int valor[][][]=new int[datos][datos2][datos3];
所做的一样新数组的尺寸以及所需的映射函数完全取决于您的要求。我们不能告诉你。您打算解决某种问题,因此确定所需的“新”元素数量以及要在旧值中精确复制的位置完全取决于您要实现的 。您没有告诉我们的。
答案 1 :(得分:1)
好的,感谢@GhostCat我解决了我的问题
int datos, datos2, datos3, datos4;
System.out.println("De cuantos elementos quiere que sea el array?");
datos=leerInt();
System.out.println("De cuantos elementos quiere que sea el array bidimensional?");
datos2=leerInt();
System.out.println("De cuantos elementos quiere que sea el array tridimensional?");
datos3=leerInt();
int valor[][][]=new int[datos][datos2][datos3];
int copia[][][]=new int[datos][datos2+1][datos3+2];
for (int i=0;i<valor.length;i++){
for (int j=0;j<valor[i].length;j++){
for (int k=0;k<valor[i][j].length;k++){
System.out.println("Introduce el valor para el array"+(i+1)+" de la parte bidimensional "+(j+1)+" de la parte tridimensional "+(k+1));
datos4=leerInt();
valor[i][j][k]=datos4;
}
}
}
for (int i=0;i<valor.length;i++){
for (int j=0;j<valor[i].length;j++){
for (int k=0;k<valor[i][j].length;k++){
copia[i][j][k]=valor[i][j][k];
}
}
}
for (int i=0; i < copia.length; i++) {
for (int j=0; j < copia[i].length; j++) {
for (int k=0; k < copia[i][j].length; k++) {
System.out.println("Los valores copiado es: "+ copia[i][j][k]);
}
}
}