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.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]
GO TO FULL VERSION