我试图通过它的索引填充一个多维数组。索引完成后,转到下一个,...
我必须在没有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;
}
谢谢!
答案 0 :(得分:0)
请记住,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);
}
}
}