Je me demandais quelle était la meilleure façon d'imprimer un tableau 2D. Voici un code que j'ai et je me demandais si c'était une bonne pratique ou non. Corrigez-moi également toute autre erreur que j'ai faite dans ce code si vous en trouvez. Merci !
int rows = 5;
int columns = 3;
int[][] array = new int[rows][columns];
for(int i = 0; i<rows; i++)
for(int j = 0; j<columns; j++)
array[i][j] = 0;
for(int i = 0; i<rows; i++)
{
for(int j = 0; j<columns; j++)
{
System.out.print(array[i][j]);
}
System.out.println();
}
Vous pouvez imprimer de manière simple.
Utilisez l'exemple ci-dessous pour imprimer un tableau 2D
int[][] array = new int[rows][columns];
System.out.println(Arrays.deepToString(array));
Utilisez ci-dessous pour imprimer un tableau 1D
int[] array = new int[size];
System.out.println(Arrays.toString(array));
Il n'y a rien de mal à ce que vous avez. Les boucles for doublement imbriquées devraient être facilement digérées par quiconque lit votre code.
Cela dit, la formulation suivante est plus dense et plus idiomatique : java. Je vous suggère de vous pencher sur certaines classes utilitaires statiques comme [Arrays] (http://docs.oracle.com/javase/7/docs/api/java/util/Arrays.html) et [Collections] (http://docs.oracle.com/javase/7/docs/api/java/util/Collections.html) le plus tôt possible. Leur utilisation efficace permet d'économiser des tonnes de texte passe-partout.
for (int[] row : array)
{
Arrays.fill(row, 0);
System.out.println(Arrays.toString(row));
}
La réponse de @Ashika fonctionne parfaitement si vous souhaitez que (0,0) soit représenté dans le coin supérieur gauche, selon la convention CS normale. Si toutefois vous préférez utiliser la convention mathématique normale et placer (0,0) dans le coin inférieur gauche, vous pouvez utiliser ceci :
LinkedList<String> printList = new LinkedList<String>();
for (char[] row: array) {
printList.addFirst(Arrays.toString(row));;
}
while (!printList.isEmpty())
System.out.println(printList.removeFirst());
Cette méthode utilise le LIFO (Last In First Out) pour inverser l'ordre au moment de l'impression.