如何通过索引填充多维数组?

How can I fill a multidimensional array by indexes?

我正在尝试通过索引填充多维数组。当一个索引完成后,再去下一个,...

我必须在没有 arraylist 的情况下执行此操作。

我的代码:

for(i = 0; i < tridimensional.length; i++){
    for(j=0; j < tridimensional[i].length; j++){
            for(k=0; k < tridimensional[i][j].length; k++){
                tridimensional[i][j][k] = (int) (Math.random() * 10+1);
            }
        }
    }

澄清结果:

INDEX:1
79  29  25  84  41  62  81  31  12  
63  13  87  71  4   46  21  20  47  
85  60  32  37  27  11  33  51  55

INDEX:N
50  82  72  15  74  80  5   17  43  
58  52  64  57  76  56  26  2   68  
39  54  77  48  70  73  8   86  34  

我有一种随机化数字并且不重复的方法。我为二维数组工作,但我想让它在三维数组中为 tridimensional[i] 中的每个矩阵工作。

for(i = 0; i < tridimensional.length; i++){
        for(j=0; j < tridimensional[i].length; j++){
            for(k=0; k < tridimensional[i][j].length; k++){
                do {
                rand= (int) (Math.random() * 89+1);
                } while (exist(tridimensional, rand));
                tridimensional[i][j][k] = rand;
            }
        }
    }

public static boolean exist(int[][][] tridimensional, int n) {
    boolean exist = false;
    int i, j, k;

     for(i = 0; i < tridimensional.length; i++){

        for(j=0; j < tridimensional[i].length; j++){
            for(k=0; k < tridimensional[i][j].length; k++){
                   if(tridimensional[i][j][k]==n) {
                    exist = true;
                   }
            }
        }
    }


    return exist;
}

谢谢!

请记住 Java 并没有真正的多维数组;它有数组的数组。您需要创建这些子数组:

// I assume here, you've already initialized `tridimensional`
for(i = 0; i < tridimensional.length; i++){
    tridimensional[i] = new int[/*...appropriate size here*/];        // <===
    for(j=0; j < tridimensional[i].length; j++){
        tridimensional[i][j] = new int[/*...appropriate size here*/]; // <===
        for(k=0; k < tridimensional[i][j].length; k++){
             tridimensional[i][j][k] = (int) (Math.random() * 10+1);
        }
    }
}