Chào các bạn đã đến với chủ đề tiếp theo của mình. Để tiếp nối chủ đề về Mảng, hôm nay, mình sẽ tiếp tục giới thiệu đến các bạn Mảng 2 chiều và cách sử dụng nó trong Java. Ở bài này, mình sẽ đi qua những nội dung như sau:
Nội dung
1. Mảng 2 chiều (ma trận) là gì?
Mảng mà chúng ta đã học ở những bài học trước là mảng 1 chiều
Trong Java, chúng ta cũng có thể tạo mảng hai chiều (mảng 2D).
Mảng hai chiều (hay còn được gọi là ma trận) là mảng của các mảng. Điều này có nghĩa là mỗi phần tử của mảng 2D chính là một mảng (như trong ảnh trên). Từ ảnh trên, chúng ta hãy cùng tìm hiểu cách tạo một mảng 2D trong Java.
2. Tạo mảng 2 chiều
Cú pháp tạo mảng hai chiều:
int[][] data = {
{23, 41, 36},
{13, 29, 19},
{34, 17, 21}
};
Trong đó, data
là một mảng hai chiều.
[][]
– đại diện cho mảng 2D.{ {23, 41, 36}, {13, 29, 19}, {34, 17, 21} }
– các phần tử của mảng 2D
Mỗi phần tử của mảng chính là một mảng.
Để cho đơn giản, bạn có thể coi mảng như một bảng gồm 3 hàng và mỗi hàng có 3 cột. Vì vậy, mảng gồm tổng cộng 9 phần tử (rows * columns
)
Lưu ý: Chúng ta cũng có thể tạo mảng nhiều chiều như sau:
int[][] data = { {23, 41, 36}, {13, 29, 19}, {34, 17, 21} };
Tuy nhiên để dễ hình dung hơn, chúng ta đã tạo nó dưới dạng bảng.
3. Truy cập phần tử của mảng 2D
Chúng ta hãy xem lại ví dụ sau:
int[][] data = {
{2, 3, 5},
{7, 14, 21},
{1, 3, 5}
};
Bây giờ, để truy cập giá trị 3, ta có thể sử dụng chỉ số như sau:
data[0][1];
Số 0 biểu thị vị trí của mảng thứ nhất và số 1 biểu thị vị trí của phần tử bên trong mảng đó (phần tử thứ hai).
Bằng cách này, chúng ta có thể truy cập các phần tử khác của mảng.
data[0][2]
tương đương với 5data[2][1]
tương đương với 3data[1][0]
tương đương với 7- …
Cũng giống như mảng một chiều, ta cũng có thể sử dụng vòng lặp để truy cập các phần tử của mảng.
4. Truy cập mảng 2D bằng vòng lặp
Chúng ta sử dụng vòng lặp lồng nhau để truy cập tất cả các phần tử của mảng 2D.
- Vòng lặp ngoài truy cập mảng bên trong của mảng 2D.
- Vòng lặp trong truy cập từng phần tử của mảng bên trong.
Hãy xem ví dụ bên dưới:
class Main {
public static void main(String[] args) {
int[][] data = {
{2, 3, 5},
{7, 14, 21},
{1, 3, 5}
};
// access array elements
// outer loop access each inner array
for (int i = 0; i < 3; ++i) {
// inner loop access each element of inner arrays
for (int j = 0; j < 3; ++j) {
System.out.println(data[i][j]);
}
}
}
}
Sau khi run đoạn code trên, kết quả được in ra như sau:
2
3
5
7
14
21
1
3
5
Trong đó:
- Vòng lặp ngoài lặp 3 lần từ
i = 0
đến 2 để truy cập 3 mảng bên trong. - Trong mỗi lần lặp của vòng lặp ngoài, vòng lặp trong lặp lại 2 lần từ
j = 0
đến 2 để truy cập từng phần tử của các mảng bên trong.
Do đó, phần thân của vòng lặp:
System.out.println(data[i][j]);
sẽ in ra các phần tử của mảng theo thứ tự data[0][0]
, data[0][1]
, data[0][2]
, data[1][0]
, data[1][1]
, data [1][2]
, data[2][0]
, data[2][1]
và data[2][2]
.
5. Kết
Như vậy chúng ta đã tìm hiểu mảng trong Java. Cảm ơn các bạn đã theo dõi bài viết của mình. Chúc các bạn thành công. Hẹn gặp lại các bạn ở những chủ đề tiếp theo. Bái bai.
Nguồn:
https://tek4.vn/khoa-hoc/lap-trinh-huong-doi-tuong-voi-java/mang-hai-chieu