Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/340.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何在Java中使用循环在3D数组中添加元素?_Java_Arrays - Fatal编程技术网

如何在Java中使用循环在3D数组中添加元素?

如何在Java中使用循环在3D数组中添加元素?,java,arrays,Java,Arrays,我知道如何在2D数组中添加元素,但由于某种原因,我的3d数组无法工作,我做错了吗 for (int i = 0; i < ROWS; i++){ for (int j = 0; j < COLUMNS; j++){ for (int k = 1; k < IN; k++){ myArray [i][j][k] = i + 10; } } } for(i

我知道如何在2D数组中添加元素,但由于某种原因,我的3d数组无法工作,我做错了吗

for (int i = 0; i < ROWS; i++){

        for (int j = 0; j < COLUMNS; j++){

            for (int k = 1; k < IN; k++){
                myArray [i][j][k] = i + 10;
            }
        }

    }
for(int i=0;i

我的数组如下:myArray=newint[COLUMNS][ROWS][IN];是这样吗?因为它应该像数组={1,2,3},{4,5,6},{7,8,9}

如果这是你的数组:{{1,2,3},{4,5,6},{7,8,9},那么你不需要3D数组,只需要2D数组

上述数组(您提供的)的元素包括:

相应地调整代码,您将得到:

for (int i = 0; i < ROWS; i++){
    for (int j = 0; j < COLUMNS; j++){
        myArray[i][j] = i + 10;
    }
}
我们声明我们的3D阵列,正如您所说:

int[][][] my3dArray = new int[rows][columns][layers];
然后我们可以初始化这些值并开始使用数组,就像您开始使用的一样,只是这次我们不会引用变量行和列

相反,这次我们将引用数组的长度。这使我们的代码更加灵活。另一个程序/类可以制作一个3d数组并将其发送给我们的程序,尽管我们事先不知道它们的网格大小(就像我们对我们的网格所做的那样),它仍然可以正常工作

for(int i=0;i
如果这是你的数组:{{1,2,3},{4,5,6},{7,8,9},那么你不需要三维数组,只需要二维数组

上述数组(您提供的)的元素包括:

相应地调整代码,您将得到:

for (int i = 0; i < ROWS; i++){
    for (int j = 0; j < COLUMNS; j++){
        myArray[i][j] = i + 10;
    }
}
我们声明我们的3D阵列,正如您所说:

int[][][] my3dArray = new int[rows][columns][layers];
然后我们可以初始化这些值并开始使用数组,就像您开始使用的一样,只是这次我们不会引用变量行和列

相反,这次我们将引用数组的长度。这使我们的代码更加灵活。另一个程序/类可以制作一个3d数组并将其发送给我们的程序,即使我们事先不知道它们的网格大小(就像我们使用我们的程序一样),它仍然可以正常工作

for(int i=0;i
你为什么不引用这个? 我希望这能帮你解决麻烦。

你为什么不把这件事提出来?
我希望这将帮助您解决问题。

这是您的代码,在for循环中切换了“列”和“行”,并正确分配了值
I*10+j+k*80;

public static int [][][] myArray = new int[][][];
public static final int ROWS = 8, COLUMNS = 10, IN = 3;
public ExerciseThree() {
    myArray = new int [ROWS][COLUMNS][IN];
    for (int i = 0; i < ROWS; i++){
        for (int j = 0; j < COLUMNS; j++){  
            for (int k = 0; k < IN; k++){
                myArray [i][j][k] = i*10 + j + k*80;
            }
        }
    }
...
publicstaticint[]myArray=newint[];
公共静态final int行=8,列=10,IN=3;
公众锻炼三{
myArray=newint[ROWS][COLUMNS][IN];
对于(int i=0;i

打印3d数组时也有错误。您应该从
切换循环条件这是您的代码,在循环中切换“列”和“行”,并正确分配值
i*10+j+k*80;

public static int [][][] myArray = new int[][][];
public static final int ROWS = 8, COLUMNS = 10, IN = 3;
public ExerciseThree() {
    myArray = new int [ROWS][COLUMNS][IN];
    for (int i = 0; i < ROWS; i++){
        for (int j = 0; j < COLUMNS; j++){  
            for (int k = 0; k < IN; k++){
                myArray [i][j][k] = i*10 + j + k*80;
            }
        }
    }
...
publicstaticint[]myArray=newint[];
公共静态final int行=8,列=10,IN=3;
公众锻炼三{
myArray=newint[ROWS][COLUMNS][IN];
对于(int i=0;i

打印3d数组时也有错误。您应该从
切换循环条件,这与创建2D数组没有多大区别

    // creating 3D array
    int[][][] myArray = new int[r][c][n];
    for (int i=0; i<r; i++){
        for (int j=0; j<c; j++){
            for (int k=0; k<n; k++){
                myArray[i][j][k] = i + 10;
            }
        }
    }
//创建三维阵列
int[]myArray=newint[r][c][n];

对于(int i=0;i而言,它与创建2D数组没有太大区别

    // creating 3D array
    int[][][] myArray = new int[r][c][n];
    for (int i=0; i<r; i++){
        for (int j=0; j<c; j++){
            for (int k=0; k<n; k++){
                myArray[i][j][k] = i + 10;
            }
        }
    }
//创建三维阵列
int[]myArray=newint[r][c][n];

对于(int i=0;i为什么您的k循环从1开始,而不是像其他循环一样从0开始?怎么了?提供更多详细信息、更多代码或解释发生了什么?@DM,因为我希望添加的第一个元素是1@Piotrowy就像我在线程“main”中得到的输出{0,10,10异常一样java.lang.ArrayIndexOutOfBoundsException:3在ExerciseThree.printArrayStatement(ExerciseThree.java:117)在ExerciseOne.main(ExerciseOne.java:12)
myArray=new int[COLUMNS][ROWS][IN]
-如果这是您的声明,那么
i
可能会转到
j
可能会转到
。为什么您的k循环像其他循环一样从1开始而不是0?有什么不对?提供更多细节、更多代码或解释发生了什么?DM因为我希望添加的第一个元素是1@Pi或者像我一样,在线程“main”java.lang.ArrayIndexOutOfBoundsException:3在ExerciseThree.printArrayStatement(ExerciseThree.java:117)在ExerciseOne.main(ExerciseOne.java:12)
myArray=new int[COLUMNS][ROWS][in]中得到这个输出{0,10,10异常
-如果这是您的声明,那么
i
可能会进入
j
可能会进入
@C.Ikongo full answer here。您可以将此答案标记为正确答案。@C.Ikongo full answer here。您可以将此答案标记为正确答案。我明白了,我已经添加到了我的原始答案中,我想这可能就是你想要的。如果有帮助,请告诉我!谢谢你的帮助:)我明白了,我已经添加到我的原始答案中,我想这可能就是你想要的。如果有帮助,请告诉我!谢谢你的帮助:)