CodeGym /Blog Java /Random-FR /Matrice en Java - Tableaux 2D
Auteur
Oleksandr Miadelets
Head of Developers Team at CodeGym

Matrice en Java - Tableaux 2D

Publié dans le groupe Random-FR

Qu'est-ce qu'un tableau matriciel / 2D en Java ?

"Une matrice est une collection de nombres disposés en un nombre fixe de lignes et de colonnes." Ce sont généralement des nombres réels. En général, les matrices peuvent contenir des nombres complexes, mais par souci de simplicité, nous n'utiliserons ici que des nombres entiers. Voyons à quoi ressemble une matrice. Voici un exemple de matrice avec 4 lignes et 4 colonnes.Matrice en Java - Tableaux 2D - 2
Fig 1 : Une simple matrice 4x4
Afin de représenter cette matrice en Java, nous pouvons utiliser un tableau à 2 dimensions. Un tableau 2D prend 2 dimensions, une pour la ligne et une pour la colonne. Par exemple, si vous spécifiez un tableau d'entiers int arr[4][4], cela signifie que la matrice aura 4 lignes et 4 colonnes. Ou vous pouvez dire que pour chaque ligne, il y aura 4 colonnes. La taille totale / le nombre de cellules dans une matrice sera lignes * colonnes = mxn = 4x4 = 16.Matrice en Java - Tableaux 2D - 3
Fig 2: La matrice [4] [4] de la figure 1 représentée sous forme de tableau 2D en Java

Déclarer et initialiser un tableau 2D

Voici différentes manières de déclarer uniquement la taille du tableau ou de l'initialiser sans mentionner la taille.

public class Matrices {

	public static void main(String[] args) {

		// declare & initialize 2D arrays for int and string
		int[][] matrix1 = new int[2][2];
		int matrix2[][] = new int[2][3];
           
           //the size of matrix3 will be 4x4
		int[][] matrix3 = { { 3, 2, 1, 7 }, 
					   { 9, 11, 5, 4 }, 
					   { 6, 0, 13, 17 }, 
					   { 7, 21, 14, 15 } };

		String[][] matrix4 = new String[2][2];

           //the size of matrix5 will be 2x3 
           // 3 cols because at max there are 3 columns
		String[][] matrix5 = { { "a", "lion", "meo" },  
				            { "jaguar", "hunt" } };
	}
}

Traversée de tableau 2D

Nous savons tous comment parcourir des tableaux réguliers en Java. Pour les tableaux 2D, ce n'est pas difficile non plus. Nous utilisons couramment des boucles 'for' imbriquées pour cela. Certains débutants pourraient penser qu'il s'agit d'un concept extraterrestre, mais dès que vous l'approfondirez, vous pourrez l'implémenter avec un peu de pratique. Jetez un oeil à l'extrait suivant. Il affiche uniquement le nombre de colonnes correspondant à chaque ligne pour votre compréhension approfondie.

public class MatrixTraversal {
	public static void main(String[] args) {

	    int[][] matrix = new int[4][4];
	    for (int i = 0; i < matrix.length; i++) 
	    {   
		 // length returns number of rows
		 System.out.print("row " + i + " : ");		
		 for (int j = 0; j < matrix[i].length; j++) 
		 { 
		    // here length returns # of columns corresponding to current row
		    System.out.print("col " + j + "  ");
		 }
	    System.out.println();
	   }
	}
}
Sortir
rang 0 : col 0 col 1 col 2 col 3 rang 1 : col 0 col 1 col 2 col 3 rang 2 : col 0 col 1 col 2 col 3 rang 3 : col 0 col 1 col 2 col 3

Comment imprimer un tableau 2D en Java ?

Après vous être familiarisé avec la traversée de tableaux 2D, examinons quelques façons d'imprimer des tableaux 2D en Java.

Utilisation de la boucle "for" imbriquée

C'est la manière la plus simple d'imprimer la matrice en Java.

public class MatrixTraversal {

    public static void printMatrix(int matrix[][])
    {
        for (int i = 0; i < matrix.length; i++) 
	  {   
	    // length returns number of rows		
	    for (int j = 0; j < matrix[i].length; j++) 
	    { 
	      // here length returns number of columns corresponding to current row
		// using tabs for equal spaces, looks better aligned
		// matrix[i][j] will return each element placed at row ‘i',column 'j'
		System.out.print( matrix[i][j]  + "\t"); 
	     }
	     System.out.println();
	   }
	}
	
	public static void main(String[] args) {

		int[][] matrix = { { 3, 2, 1, 7 }, 
					 { 9, 11, 5, 4 }, 
					 { 6, 0, 13, 17 }, 
					 { 7, 21, 14, 15 } };
		printMatrix(matrix);
	}
}
Sortir
3 2 1 7 9 11 5 4 6 0 13 17 7 21 14 15

Utilisation de la boucle "pour chaque"

Voici une autre façon d'imprimer des tableaux 2D en Java en utilisant la « boucle foreach ». Il s'agit d'un type spécial de boucle fourni par Java, où le int[]row parcourt chaque ligne de la matrice. Alors que la variable "élément" contiendra chaque élément placé à l'index de la colonne dans la ligne.

public class MatrixTraversal {

	public static void printMatrix(int matrix[][]){
		for (int [] row : matrix) 
		{   
			// traverses through number of rows		
			for (int element : row) 
			{ 
				// 'element' has current element of row index
				System.out.print( element  + "\t"); 
			}
			System.out.println();
		}
	}
	
	public static void main(String[] args) {

		int[][] matrix = {  { 3, 2, 1, 7 }, 
					  { 9, 11, 5, 4 }, 
					  { 6, 0, 13, 17 }, 
					  { 7, 21, 14, 15 } };
		printMatrix(matrix);
	}
}
Sortir
3 2 1 7 9 11 5 4 6 0 13 17 7 21 14 15

Utilisation de la méthode "Arays.toString()"

La méthode Arrays.toString() en Java, convertit chaque paramètre qui lui est transmis en un seul tableau et utilise sa méthode intégrée pour l'imprimer. Nous avons créé un tableau factice String 2D pour jouer. La même méthode fonctionne également pour les tableaux d'entiers. Nous vous encourageons à le pratiquer pour votre exercice.

import java.util.Arrays;
public class MatrixTraversal {
	public static void printMatrix(String matrix[][]){
	
		for (String[] row : matrix) {
			// convert each row to a String before printing
			System.out.println(Arrays.toString(row));
		}
	}
	
	public static void main(String[] args) {

		String [][] matrix = {  { "Hi, I am Karen" }, 
						{ "I'm new to Java"}, 
						{ "I love swimming" }, 
						{ "sometimes I play keyboard"} };
		printMatrix(matrix);
	}
}
Sortir
[Salut, je suis Karen] [Je suis nouveau à Java] [J'adore nager] [parfois je joue du clavier]

Explication des codes

Dans la première itération, String[]row lira "Salut, je suis Karen" en tant que tableau, le convertira en String, puis l'imprimera. C'est ainsi que toutes les itérations auront lieu. L'utilitaire fourni ici est que vous n'avez pas à suivre les index (i, j) ou les boucles imbriquées.

Conclusion

Les tableaux 2D en Java sont les plus simples des tableaux multidimensionnels. À la fin de cet article, nous espérons que vous n'avez pas peur de les utiliser, plutôt prêt à retrousser vos manches pour un travail sérieux. Vous pouvez exécuter tous ces exemples de codes ou déboguer ligne par ligne selon votre convenance. Mais en fin de compte, nous aimerions vous informer (comme toujours) que la compétence vient avec beaucoup de pratique et de patience. J'espère que vous aurez une expérience d'apprentissage amusante avec les tableaux 2D en Java. Bonne chance!
Commentaires
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION