1. Khai báo và khởi tạo mảng 2 chiều
Mảng hai chiều (two dimensional array) trong Java dùng để lưu trữ dữ liệu dưới dạng ma trận gồm nhiều dòng và nhiều cột. Mảng 2 chiều lưu trữ các phần tử theo dạng bảng gồm dòng và cột.
Có thể hình dùng mảng 2 chiều ở trên như là một bảng gồm 3 dòng và 4 cột. Mỗi dòng thì lưu trữ như mảng một chiều.
Cú pháp khai báo mảng 2 chiều:
elementType[][] arrayRefVar;
hoặc
elementType arrayRefVar[][];
Ví dụ: Khai báo một biến mảng ma trận hai chiều lưu các giá trị kiểu int.
int[][] matrix;
hoặc
int matrix[][];
Cấp phát vùng nhớ cho mảng 2 chiều
int[][] a;
a = new int[3][4];
Chỉ số của dòng và cột của mảng 2 chiều trong Java bắt đầu từ 0. Ví dụ, phần tử dòng 1, cột 1 là a[0][0].
Khởi tạo mảng 2 chiều
int[][] arr = {
{1, 2, 3, 0},
{4, 5, 6, 9},
{7, 2, 5, 5},
};
Ở ví dụ trên, chúng ta tạo ra một mảng 2 chiều tên là arr và khởi tạo các phần tử của mảng trong dấu ngoặc nhọn {}. Mảng 2 chiều arr gồm 3 dòng và 4 cột.
Chúng ta cũng có thể khởi tạo mảng 2 chiều bằng cách gán giá trị cho từng phần tử trong mảng thông qua chỉ số dòng và chỉ số cột.
int[][] arr = new int[3][4];
arr[0][0]=1; arr[0][1]=2; arr[0][2]=3; arr[0][3]=0;
arr[1][0]=4; arr[1][1]=5; arr[1][2]=6; arr[1][3]=9;
arr[2][0]=7; arr[2][1]=2; arr[2][2]=5; arr[2][3]=5;
2. Kích thước của mảng 2 chiều trong Java
Mảng hai chiều là một mảng mà mỗi phần tử là một mảng một chiều.
x.length;
x[0].length;
x[1].length;
x[2].length;
3. Mảng gồ ghề (jagged array) trong Java
Mỗi dòng của một mảng 2 chiều trong Java là một mảng đơn. Vì vậy, mỗi dòng có thể có độ dài khác nhau. Một mảng như vậy được gọi là mảng gồ ghề (jagged array).
int[][] a = {
{1, 2, 3},
{4, 5, 6, 9},
{7},
};
Trong mảng trên, a[0].length = 3, a[1].length = 4, a[2].length = 1. Các dòng trong mảng có số lượng phần tử khác nhau. Mảng a là một mảng gồ ghề.