有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

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

我试图通过索引填充多维数组。索引完成后,请转到下一个

我必须在没有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  

我有一种随机化数字的方法,不会重复。我为二维数组工作,但我想让它在三维数组中为三维[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;
}

谢谢大家!


共 (1) 个答案

  1. # 1 楼答案

    请记住,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);
            }
        }
    }