Mảng ma trận/2D trong Java là gì?
“Ma trận là một tập hợp các số được sắp xếp thành một số hàng và cột cố định.” Thông thường đây là những số thực. Nói chung, ma trận có thể chứa các số phức nhưng để đơn giản, chúng ta sẽ chỉ sử dụng các số nguyên ở đây. Chúng ta hãy xem một ma trận trông như thế nào. Dưới đây là một ví dụ về ma trận có 4 hàng và 4 cột.

Khai báo & Khởi tạo mảng 2D
Dưới đây là một số cách khác nhau để chỉ khai báo kích thước của mảng hoặc khởi tạo nó mà không đề cập đến kích thước.
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" } };
}
}
Truyền tải mảng 2D
Chúng ta đều biết cách duyệt qua các mảng thông thường trong Java. Đối với mảng 2D, điều đó cũng không khó. Chúng tôi thường sử dụng các vòng lặp 'for' lồng nhau cho việc này. Một số người mới bắt đầu có thể coi đó là một khái niệm xa lạ, nhưng ngay khi bạn tìm hiểu sâu hơn về nó, bạn sẽ có thể thực hiện điều này bằng một số thực hành. Hãy xem đoạn trích sau đây. Nó chỉ hiển thị số cột tương ứng với mỗi hàng để bạn hiểu tường tận.
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();
}
}
}
đầu ra
hàng 0 : col 0 col 1 col 2 col 3
hàng 1 : col 0 col 1 col 2 col 3
hàng 2 : col 0 col 1 col 2 col 3
hàng 3 : col 0 col 1 col 2 col 3
Làm cách nào để in một mảng 2D trong Java?
Sau khi bạn đã quen với việc truyền tải Mảng 2D, hãy xem xét một số cách in Mảng 2D trong Java.Sử dụng vòng lặp “for” lồng nhau
Đây là cách cơ bản nhất để in ma trận trong 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);
}
}
đầu ra
3 2 1 7
9 11 5 4
6 0 13 17
7 21 14 15
Sử dụng vòng lặp “for-each”
Đây là một cách khác để in mảng 2D trong Java bằng cách sử dụng “ vòng lặp foreach ”. Đây là một loại vòng lặp đặc biệt do Java cung cấp, trong đó int[]row sẽ lặp qua từng hàng trong ma trận. Trong khi đó, biến "phần tử" sẽ chứa từng phần tử được đặt ở chỉ mục cột cho đến hàng.
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);
}
}
đầu ra
3 2 1 7
9 11 5 4
6 0 13 17
7 21 14 15
Sử dụng phương thức “Arays.toString()”
Phương thức Arrays.toString() trong Java, chuyển đổi mọi tham số được truyền cho nó thành một mảng đơn và sử dụng phương thức tích hợp của nó để in nó. Chúng tôi đã tạo một mảng Chuỗi 2D giả để chơi xung quanh. Phương pháp tương tự cũng hoạt động đối với mảng số nguyên. Chúng tôi khuyến khích bạn thực hành nó cho bài tập của bạn.
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);
}
}
đầu ra
[Xin chào, tôi là Karen]
[Tôi mới sử dụng Java]
[Tôi thích bơi lội]
[thỉnh thoảng tôi chơi bàn phím]
GO TO FULL VERSION