打印 3d 数组中的所有值

use*_*388 0 java arrays multidimensional-array

有没有办法打印 3d 数组中的所有值?

这是我得到的,但出现空指针异常:

        int i = 2;
        int x = 15;
        String[][][] arrays = new String[x][x][i];
        String arraytext = "hello";


            for (String[][] row: arrays)
             Arrays.fill(row, arraytext);


            for (int a = 0; a<=x; a++){
              for (int b = 0; b<=x; b++){
                  for (int j = 0; j<=i; j++)
                      {System.out.println(arrays[a][b][j]);}

                                    }
                                }
Run Code Online (Sandbox Code Playgroud)

nac*_*okk 5

您在填充数组时遇到问题。你正在得到

java.lang.ArrayStoreException: java.lang.String at Arrays.fill(row, arraytext);
Run Code Online (Sandbox Code Playgroud)

这是因为您尝试在需要 String[][] 时添加字符串。对于打印,您可以使用Arrays.deepToString()就是您的答案。

System.out.println(Arrays.deepToString(arrays));
Run Code Online (Sandbox Code Playgroud)

例子:

public static void main(String[] args) {
        String[][][] array3d = new String[10][10][10];

         for(String [] [] array2d : array3d){
             for(String[] array : array2d){
                 Arrays.fill(array, "hello");
             }
         }

         System.out.println(Arrays.deepToString(array3d));

    }
Run Code Online (Sandbox Code Playgroud)