13 votes

Comment demander le nombre de lignes d'un tableau Java à deux dimensions ?

Comment dois-je m'y prendre pour demander à un tableau à deux dimensions combien de lignes il comporte ?

16voto

cletus Points 276888

Tout d'abord, Java n'a techniquement pas de tableaux à 2 dimensions : il a des tableaux de tableaux. Donc, en Java, vous pouvez faire ceci :

String arr[][] = new String[] {
  new String[3],
  new String[4],
  new String[5]
};

Ce que je veux faire comprendre, c'est que le tableau ci-dessus n'est pas rectangulaire (comme le serait un vrai tableau 2D).

Donc, votre tableau de tableaux, c'est par colonnes puis rangées ou rangées puis colonnes ? Si c'est par rangées puis colonnes, c'est facile :

int rows = arr.length;

(à partir de l'exemple ci-dessus).

Si votre tableau est composé de colonnes puis de lignes, vous avez un problème. Vous pouvez le faire :

int rows = arr[0].length;

mais cela pourrait échouer pour un certain nombre de raisons :

  1. Le tableau doit être de taille 0, auquel cas vous obtiendrez une exception.
  2. Vous supposez que la longueur du premier élément du tableau correspond au nombre de rangées. Ce n'est pas forcément correct, comme le montre l'exemple ci-dessus.

Les tableaux sont un outil rudimentaire. Si vous voulez un véritable objet 2D, je vous suggère fortement de trouver ou d'écrire une classe qui se comporte de manière correcte.

9voto

camickr Points 137095
Object[][] data = ...
System.out.println(data.length); // number of rows
System.out.println(data[0].length); // number of columns in first row

5voto

Xepoch Points 4018
int[][] ia = new int[5][6];
System.out.println(ia.length);
System.out.println(ia[0].length);

1voto

Stephen C Points 255558

Cela dépend de ce que vous entendez par "combien de rangs".

Pour commencer, un tableau à 2 dimensions est en fait un tableau à 1 dimension de tableaux à 1 dimension en Java. Et il n'est pas nécessaire qu'un tableau bidimensionnel soit réellement rectangulaire, ni même que tous les éléments de la première dimension soient remplis.

  • Si vous voulez trouver le nombre d'éléments dans la première dimension, la réponse est tout simplement array.length .

  • Si vous voulez trouver le nombre d'éléments dans la deuxième dimension d'un tableau rectangulaire à deux dimensions, la réponse est `array[0].length.

  • Si vous voulez trouver le nombre d'éléments dans la deuxième dimension d'un tableau 2-D non rectangulaire ou clairsemé, la réponse est indéfinie.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X