Menu
CoddyTech

Truy cập phần tử trong mảng 2D

Thuộc phần Logic và luồng chương trình trong hành trình Java của Coddy. Bài học 2 trên 59.

Truy cập các phần tử trong mảng 2D tương tự như truy cập các phần tử trong mảng 1D, nhưng thay vì dùng một chỉ số, bạn dùng hai chỉ số: một chỉ số cho hàng và một chỉ số cho cột. Hãy nhớ rằng chỉ số trong Java bắt đầu từ 0, vì vậy hàng đầu tiên có chỉ số 0, hàng thứ hai có chỉ số 1, v.v. Tương tự, cột đầu tiên có chỉ số 0, cột thứ hai có chỉ số 1, v.v.

Để truy cập một phần tử, trước tiên bạn chỉ định chỉ số hàng, sau đó là chỉ số cột, theo cú pháp sau:

arrayName[rowIndex][columnIndex]

Ví dụ, để truy cập phần tử ở hàng thứ hai (chỉ số 1) và cột thứ ba (chỉ số 2) của mảng 2D có tên matrix, bạn viết:

int element = matrix[1][2];

Lệnh này sẽ gán giá trị của phần tử ở hàng 1, cột 2 cho biến element.

Lấy kích thước của mảng 2D:

Tương tự như mảng 1D, bạn có thể dùng .length để lấy kích thước của mảng 2D:

int[][] matrix = {
    {1, 2, 3},
    {4, 5, 6}
};
int numRows = matrix.length;        // Lấy số hàng: 2
int numCols = matrix[0].length;     // Lấy số cột: 3
  • matrix.length trả về số hàng
  • matrix[0].length trả về số cột trong hàng đầu tiên

Kiểm tra giới hạn:

Trước khi truy cập một phần tử, bạn nên kiểm tra xem các chỉ số có hợp lệ không:

if (rowIndex >= 0 && rowIndex < matrix.length && 
    colIndex >= 0 && colIndex < matrix[0].length) {
    // Có thể truy cập matrix[rowIndex][colIndex] an toàn
}
challenge icon

Thử thách

Dễ

Tạo một phương thức tên là getElement nhận ba đối số:

  1. Một mảng số nguyên 2D tên là matrix.
  2. Một số nguyên rowIndex biểu thị chỉ số hàng.
  3. Một số nguyên colIndex biểu thị chỉ số cột.

Phương thức này sẽ trả về phần tử tại hàng và cột được chỉ định trong matrix. Nếu rowIndex hoặc colIndex nằm ngoài phạm vi (tức là nhỏ hơn 0 hoặc lớn hơn hay bằng số hàng hoặc số cột), phương thức sẽ trả về -1.

Tự làm thử

// Chỉ viết code bên trong lớp (class). Đừng viết main() hoặc bất kỳ đoạn code nào bên ngoài lớp này.
class GetElement {
    public static int getElement(int[][] matrix, int rowIndex, int colIndex) {
        // Viết code ở đây
    }
}
quiz iconTự kiểm tra

Bài học này có một bài trắc nghiệm ngắn. Bắt đầu bài học để trả lời và theo dõi tiến độ.

Tất cả bài học trong Logic và luồng chương trình

Tự luyện tập: Trình biên dịch Java online