web-dev-qa-db-fra.com

Longueurs de tableaux multidimensionnels en Java

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'?

25
Bryan Harrington

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;
}
55

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

11
Siddharth Thevaril

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;
    }
}
8
Nathan Ryan

Pour tableau 2 D: -

int x[][] = new int[6][12];
System.out.println(x.length + " " + x[1].length);

SORTIE: 6 12

4
Nikhil Kumar

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;
1
Vaibhav Grover

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);
0
Kaptan Singh Rana