Je me demandais quelle était la meilleure façon d’imprimer un tableau 2D. C'est 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 commise 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 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));
Je préférerais généralement foreach
lorsque je n'ai pas besoin d'effectuer d'opérations arithmétiques avec leurs indices.
for (int[] x : array)
{
for (int y : x)
{
System.out.print(y + " ");
}
System.out.println();
}
Un moyen simple et propre d’imprimer un tableau 2D.
System.out.println(Arrays.deepToString(array).replace("], ", "]\n").replace("[[", "[").replace("]]", "]"));
Il n'y a rien de mal avec ce que vous avez. Les boucles à double imbriqué doivent être facilement digérées par toute personne lisant votre code.
Ceci dit, la formulation suivante est une Java plus dense et plus idiomatique. Je suggérerais de fouiller dans certaines classes d'utilitaires statiques telles que Arrays et Collections plus tôt que plus tard. Des tonnes de fer à repasser peuvent être rasées grâce à leur utilisation efficace.
for (int[] row : array)
{
Arrays.fill(row, 0);
System.out.println(Arrays.toString(row));
}
C'est le meilleur je suppose:
for (int[] row : matrix){
System.out.println(Arrays.toString(row));
}
|1 2 3|
|4 5 6|
Utilisez le code ci-dessous pour imprimer les valeurs.
System.out.println(Arrays.deepToString());
La sortie ressemblera à ceci (toute la matrice en une ligne):
[[1,2,3],[4,5,6]]
La réponse de @ Ashika fonctionne à merveille si vous souhaitez que (0,0) soit représenté dans le coin supérieur gauche, conformément à la convention CS normale. Si toutefois vous préférez utiliser la convention mathématique normale et mettre (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());
Ceci utilisait LIFO (dernier entré, premier sorti) pour inverser l'ordre au moment de l'impression.
Deux lignes avec nouvelle ligne:
for(int[] x: matrix)
System.out.println(Arrays.toString(x));
Une doublure sans nouvelle ligne:
System.out.println(Arrays.deepToString(matrix));
Essaye ça,
for (char[] temp : box) {
System.err.println(Arrays.toString(temp).replaceAll(",", " ").replaceAll("\\[|\\]", ""));
}