Cómo copiar la matriz dimensional

Esta es mi primera publicación, siempre trato de encontrar la solución, pero no la encontré.

Necesito copiar una matriz [] [] [] para copiar [] [] [] pero la copia debe ser más larga que la matriz.

Escribí esto pero no copie como 0, solo copie como NULL e hice una excepción.

  1. Copia un conjunto tridimensional de enteros a otro de mayor tamaño.

    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]);
    
            }
        }
    }
    
Respuesta 1

En realidad, la respuesta es bastante simple, solo necesitas hacer estas tres cosas:

  • crea una nueva matriz, hasta la última dimensión, como ya lo haces con int valor[][][]=new int[datos][datos2][datos3];
  • lo anterior le da esa matriz "3 dim", con todos los elementos preestablecidos en 0 (porque es una matriz de int, no puede haber valores NULL allí)
  • luego itera su matriz "antigua", y para cada valor, "simplemente" decide a dónde debe ir en la matriz nueva y más grande

Las dimensiones de la nueva matriz y la función de mapeo que necesita dependen completamente de sus requisitos. No podemos decirte eso. Tiene la intención de resolver algún tipo de problema, por lo que determinar cuántos elementos "nuevos" necesita y dónde exactamente desea copiar los valores antiguos depende completamente de lo que desea lograr. Lo cual no nos dijiste.

Respuesta: 2

Tengo problemas para analizar un archivo XML en una instancia de documento JDOM usando SAXBuilder. Lanza la siguiente excepción: [Error grave]: 1: 1: el contenido no está permitido en el prólogo. He encontrado y ...

Quiero crear una estructura de datos de lista especial que funcione como una matriz, ya que es como una lista con valores x [0], x [1], ... Cualquier consejo sería muy apreciado. Sé que todo mi código no es perfecto ...

Estoy usando Spring3.1. He registrado un Bean programáticamente y quiero recuperarlo programáticamente también, pero no tuve éxito. public void createBean (String beanName, String beanParam) {...

Antes de comenzar con Restlet, ya escribí un cliente de Jersey. Fue muy intuitivo, parece que Restlet no lo es. No hay mucha documentación y no puedo resolver los problemas más fáciles. Donde estoy: ...