Comment trouver les longueurs d'un tableau multidimensionnel avec des index non égaux?
Par exemple, j'ai int[][] pathList = new int[6][4]
Sans coder en dur les index, je dois trouver le «6» et le «4».
Je peux trouver le 6 avec pathList.length
, mais comment obtenir le '4'?
Cela vous donnera la longueur du tableau à l'index i
pathList[i].length
Il est important de noter que contrairement à C ou C++, la longueur des éléments d'un tableau à deux dimensions en Java n'est pas nécessairement égale. Par exemple, lorsque pathList
est instancié égal à new int[6][]
, il peut contenir 6 instances int []
, dont chacune peut avoir une longueur différente.
Ainsi, lorsque vous créez des tableaux comme vous l'avez montré dans votre question, vous pouvez également
pathList[0].length
puisque vous savez qu'ils ont tous la même longueur. Dans les autres cas, vous devez définir exactement ce que la longueur de la deuxième dimension signifie - spécifique à votre application - il peut s'agir du maximum des longueurs de tous les éléments, voire du minimum. Dans la plupart des cas, vous devrez parcourir tous les éléments et en lire la longueur pour prendre une décision:
for(int i = 0; i < pathList.length; i++)
{
int currLen = pathList[i].length;
}
Ceci est pour un tableau en 3 dimensions.
int x[][][]=new int[5][8][10];
System.out.println(x.length+" "+x[1].length+" "+x[0][1].length);
SORTIE: 5 8 10
Java a des tableaux multidimensionnels "en dents de scie", ce qui signifie que chaque "ligne" de votre tableau à deux dimensions peut avoir un nombre différent de composants. Si vous pouvez supposer que chaque ligne contient le même nombre de composants, utilisez:
pathList[0].length;
Sinon, vous devrez itérer:
int maxRowLength = 0;
for (int i = 0; i < pathList.length; i++) {
if (maxRowLength < pathList[i].length) {
maxRowLength = pathList[i].length;
}
}
Pour tableau 2 D: -
int x[][] = new int[6][12];
System.out.println(x.length + " " + x[1].length);
SORTIE: 6 12
En Java, nous pouvons définir un tableau de tableaux que nous appelons des tableaux multi-dimensionnels. Par tableau de tableaux, nous entendons qu'un élément unique de notre tableau est à nouveau un tableau (en Java peut être de longueur multiple). sous-réseau de même taille, on peut utiliser:
int[][]a=new int[3][3];//let a[][] be my array
a.length will work. //a is an object of proxy class and length is its property.
Toutefois, si vous avez des sous-matrices de tailles différentes, vous devez les itérer.
for(i=0;i<a.length;i++)
int cur_size=a[i].length;
Longueur de la matrice 3D
int[][][] a = new int[2][3][7];
int length=0;
for(int[][] i:a){
for(int j[]:i){
length+=j.length;
}
}
System.out.println(length);