Mảng đa chiều trong java với ví dụ cụ thể

Mảng đa chiều có thể định nghĩa đơn giản là mảng của mảng, dữ liệu bên trong một phần tử của mảng là một mảng.

data_type[1st dimension][2nd dimension][]..[Nth dimension] array_name = new data_type[size1][size2]….[sizeN];

Chú thích:

  • data_type: Kiểu dữ liệu của mảng, ví dụ int, char, double etc.
  • dimension: Kích thước của mảng
  • array_name: Tên mảng
  • size1, size2, …, sizeN: Kích thước mảng tương ứng (1st dimension – size1, 2st dimension] – size 2 etc)

Ví dụ

Mảng 2 chiều
int[][] twoD_arr = new int[10][20];

Mảng 3 chiều
int[][][] threeD_arr = new int[10][20][30];

Đối với mảng 2 chiều twoD_arr, là một mảng 10 phần tử, với mỗi phần tử là một mảng gồm 20 phần tử.

Đối với mảng 3 chiều threeD_arr, là 1 mảng 10 phần tử, mỗi phần tử là một mảng 20 phần tử, trong 20 phần tử này mỗi phần tử lại là một mảng 30 phần tử.

Cách tính số phần tử trong mảng đa chiều

Tổng số phần tử được lưu trong mảng đa chiều được tính bằng tích kích thước của tửng mảng bên trong mảng đa chiều. Ví dụ 

twoD_arr[10][20] -> kích thước là 10 * 20 = 200
threeD_arr[10][20][30] -> kích thước là 10 * 20 *30 = 6000

Mảng 2 chiều trong java

Mảng 2 chiều là 1 cấu trúc được sử dụng nhiều và có cấu trúc đơn giản nhất trong mảng đa chiều. Nó có thể gọi đơn giản là mảng của mảng.

Khởi tạo mảng 2 chiều

Khởi tạo mảng 2 chiều theo cú gián tiếp pháp sau:

data_type[][] array_name = new data_type[x][y];
        Ví dụ: int[][] arr = new int[10][20]

Trong đó

  • data_type: Kiểu dữ liệu của mảng, ví dụ int, char, double etc.
  • array_name: Tên mảng
  • x: Kích thước mảng 2 chiều
  • y: Kích thước mảng của mỗi phần tử trong mảng 2 chiều.

Gán giá trị cho 1 phần tử cụ thể trong mảng 2 chiều

array_name[row_index][column_index] = value;
        For example: arr[0][0] = 1;

Ví dụ

class GFG { 
    public static void main(String[] args) 
    { 
  
        int[][] arr = new int[10][20]; 
        arr[0][0] = 1; 
  
        System.out.println("arr[0][0] = " + arr[0][0]); 
    } 
}

Output: arr[0][0] = 1

Ngoài ra chúng ta có thể khởi tạo mảng và trực tiếp giá trị cho từng phần tử trong mảng 2 chiều như sau

data_type[][] array_name = {
                             {valueR1C1, valueR1C2, ....}, 
                             {valueR2C1, valueR2C2, ....}
                           };

Ví dụ: int[][] arr = {{1, 2}, {3, 4}};

Truy xuất ngẫu nhiên trong mảng 2 chiều

Để truy xuất ngẫu nhiên một phần tử trong mảng 2 chiều sử dụng cú pháp

namearr[i][j]

i: tương ứng chỉ số của dòng, j là chỉ số của cột trong mảng 2 chiều.

mảng 2 chieu

class GFG { 
    public static void main(String[] args) 
    { 
  
        int[][] arr = { { 1, 2 }, { 3, 4 } }; 
  
        for (int i = 0; i < 2; i++) 
            for (int j = 0; j < 2; j++) 
                System.out.println("arr[" + i + "][" + j + "] = "
                                   + arr[i][j]); 
    } 
}

Output:

arr[0][0] = 1
arr[0][1] = 2
arr[1][0] = 3
arr[1][1] = 4

Mảng 3 chiều trong java

Mảng 3 chiều là 1 cấu trúc có cấu trúc phức tạp trong mảng đa chiều. Nó có thể gọi đơn giản là mảng của mảng 2 chiều, nghĩa là mỗi phần tử trong mảng 3 chiều là một mảng 2 chiều.

Khởi tạo mảng 3 chiều

Khởi tạo mảng 3 chiều theo cú pháp sau:

data_type[][][] array_name = new data_type[x][y][z];
        Ví dụ: int[][][] arr = new int[10][20][30];
array_name[array_index][row_index][column_index] = value;
       Ví dụ: arr[0][0][0] = 1;
class GFG { 
    public static void main(String[] args) 
    { 
  
        int[][][] arr = new int[10][20][30]; 
        arr[0][0][0] = 1; 
  
        System.out.println("arr[0][0][0] = " + arr[0][0][0]); 
    } 
}

Output: arr[0][0][0] = 1

Ngoài ra chúng ta có thể khởi tạo mảng và trực tiếp giá trị cho từng phần tử trong mảng 3 chiều như sau

data_type[][][] array_name = {
                              {
                               {valueA1R1C1, valueA1R1C2, ....}, 
                               {valueA1R2C1, valueA1R2C2, ....}
                              },
                              {
                               {valueA2R1C1, valueA2R1C2, ....}, 
                               {valueA2R2C1, valueA2R2C2, ....}
                              }
                             };

For example: int[][][] arr = { {{1, 2}, {3, 4}}, {{5, 6}, {7, 8}} };

Truy xuất phần tử ngẫu nhiên trong mảng 3 chiều

Để truy xuất ngẫu nhiên một phần tử trong mảng 2 chiều sử dụng cú pháp

x[array_index][row_index][column_index]

Trong đó:

  • array_index: Chỉ số phần tử trong mảng 3 chiều
  • row_index: Chỉ số dòng mảng 2 chiều của phần tử tại array_index.
  • col_index: Chỉ số cột mảng 2 chiều của phần tử tại array_index.

 

mảng 3 chiều

In tất cả các phần tử của mảng 3 chiều

class GFG { 
    public static void main(String[] args) 
    { 
  
        int[][][] arr = { { { 1, 2 }, { 3, 4 } }, 
                          { { 5, 6 }, { 7, 8 } } }; 
  
        for (int i = 0; i < 2; i++) { 
  
            for (int j = 0; j < 2; j++) { 
  
                for (int k = 0; k < 2; k++) { 
  
                    System.out.print(arr[i][j][k] + " "); 
                } 
  
                System.out.println(); 
            } 
            System.out.println(); 
        } 
    } 
}

Output: 

1 2
3 4

5 6
7 8

Tóm lược

Như vậy chúng ta đã hiểu xong về mảng đa chiều trong java, thực thế thì mình chỉ sử dụng nhiều mảng 2 chiều thôi, nó cũng đã khá nhức đầu rồi. Mảng 3 chiều thì mình chưa hoặc có lẽ là ko bao giờ cần dùng, nếu các bạn có thể tìm hiểu thêm, theo mình tìm hiểu thì nó được dùng trong lập trình game bla bla.

Nguồn tham khảo:

https://www.geeksforgeeks.org/multidimensional-arrays-in-java/

0 0 votes
Article Rating
Subscribe
Notify of
guest
0 Comments
Inline Feedbacks
View all comments
0
Would love your thoughts, please comment.x
()
x