java - 如何复制数组维度

标签 java

这是我的第一篇文章,我总是试图找到解决方案,但我没有找到。

我需要将一个数组[][][]复制到副本[][][],但副本需要比数组更长。

我写了这个,但不要像 0 一样复制,只是像 NULL 一样复制并异常(exception)。

  • 将三维立体阵列复制到其他主要塔马诺。

    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]);
    
            }
        }
    }
    
  • 最佳答案

    其实答案很简单,你只需要做这三件事:

    • 创建一个新数组,直到最后一个维度,就像您已经使用 int valor[][][]=new int[datos][datos2][datos3]; 所做的那样;
    • 上面给出了“3 dim”数组,其中所有元素预先设置为 0(因为它是一个 int 数组,其中不能有 NULL 值)<
    • 然后迭代“旧”数组,对于每个值,您“简单地”决定它应该在新的、更大的数组中存放到哪里

    新数组的维度以及您需要的映射函数完全取决于您的要求。我们不能告诉你这一点。您打算解决某种问题,因此确定您需要多少"new"元素,以及您想要将旧值复制到哪里,完全取决于您想要实现的目标。你没有告诉我们。

    关于java - 如何复制数组维度,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54098615/

    相关文章:

    java - 查找函数 'TessBaseAPICreate' : libtesseract. 时出错: undefined symbol :TessBaseAPICreate

    java - JBPM : couldn't deploy process archives : null

    java - 我们有撒克逊特定的 Transformer 类吗?

    java - findLibrary 在 Android Studio 中使用 OpenCV4Android 返回 null

    java - 为 HashMap 创建自定义迭代器

    java - 是否可以在 Java 7 源代码级别使用 ConcurrentHashmap 计算?

    java - 在 Retrofit baseUrl 中使用模拟器 ip 地址 10.0.2.2

    java - 我知道为什么运行时异常不需要 try - catch 或 throws 但我想知道它是如何设计成不需要它们的?

    java - 字符串(文件的 base64)中存储的最大大小 - Java

    java - Avro 模式演变 : Can't add or remove fields