[Tự học Java] Mảng đa chiều trong Java » https://final-blade.com

Trong Java, bạn hoàn toàn có thể khai báo một mảng có chứa nhiều mảng ( được gọi là mảng đa chiều ) .

Trước khi tìm hiểu về mảng đa chiều, hãy truy cập bài viết về mảng trong Java để tìm hiểu về mảng một chiều.

Trong bài viết đó, bạn đã học cách tạo và sử dụng mảng chứa giá trị thuộc những kiểu tài liệu cơ bản ( ví dụ điển hình như Double, int, v.v. ), mảng String và mảng chứa những đối tượng người tiêu dùng. Chúng ta cũng hoàn toàn có thể tạo ra một mảng trong đó có chứa nhiều mảng, mảng như vậy được gọi là mảng đa chiều. Ví dụ ,

int[][] a = new int[3][4];

Ở đây, a là một mảng hai chiều ( mảng 2 d ). Mảng này hoàn toàn có thể chứa tối đa 12 thành phần thuộc kiểu tài liệu int .
Hãy nhớ rằng, Java sử dụng chỉ số gốc là 0, nghĩa là, chỉ số của những mảng trong Java mở màn bằng 0 chứ không phải bằng 1 .
Tương tự, hoàn toàn có thể khai báo một mảng ba chiều ( mảng 3 d ). Ví dụ ,

String[][][] data = new String[3][4][2];

Ở đây, PersonalInfo là một mảng 3 d hoàn toàn có thể chứa tối đa 24 ( 3 x 4 x 2 ) thành phần thuộc kiểu tài liệu String .
Trong Java, những thành phần của một mảng đa cũng là những mảng .
Nếu bạn đã biết đến C / C + +, bạn hoàn toàn có thể cảm thấy những mảng đa chiều trong Java và trong C / C + + hoạt động giải trí theo những cách tựa như nhau. Nhưng không phải như vậy. Trong Java, những hàng hoàn toàn có thể khác nhau về độ dài .
Bạn sẽ thấy sự độc lạ trong khi khởi tạo .

1. Làm thế nào để khởi tạo một mảng 2d trong Java?

Sau đây là một ví dụ về việc khởi tạo một mảng 2 d trong Java .

int[][] a = {
      {1, 2, 3}, 
      {4, 5, 6, 9}, 
      {7}, 
};

Như đã đề cập, mỗi thành phần của mảng a là một mảng và độ dài của mỗi hàng cũng khác nhau.

Hãy viết một chương trình để chứng tỏ điều đó .

/**
* Cafedev.vn - Kênh thông tin IT hàng đầu Việt Nam
*
* @author cafedevn
* Contact: [email protected]
* Fanpage: https://www.facebook.com/cafedevn
* Instagram: https://instagram.com/cafedevn
* Twitter: https://twitter.com/CafedeVn
* Linkedin: https://www.linkedin.com/in/cafe-dev-407054199/
*/

class MultidimensionalArray {
    public static void main(String[] args) {

        // create a 2d array
        int[][] a = {
            {1, 2, 3}, 
            {4, 5, 6, 9}, 
            {7}, 
        };
      
        // calculate the length of each row
        System.out.println("Length of row 1: " + a[0].length);
        System.out.println("Length of row 2: " + a[1].length);
        System.out.println("Length of row 3: " + a[2].length);
    }
}

Khi bạn chạy chương trình, hiệu quả sẽ là :

Length of row 1: 3
Length of row 2: 4
Length of row 3: 1

Vì mỗi thành phần của một mảng đa chiều cũng là một mảng ( a [ 0 ], a [ 1 ] và a [ 2 ] cũng là mảng ), bạn hoàn toàn có thể sử dụng thuộc tính length để tìm độ dài của mỗi hàng .

2. Ví dụ: Sử dụng vòng lặp để in tất cả các phần tử của mảng 2d

/**
* Cafedev.vn - Kênh thông tin IT hàng đầu Việt Nam
*
* @author cafedevn
* Contact: [email protected]
* Fanpage: https://www.facebook.com/cafedevn
* Instagram: https://instagram.com/cafedevn
* Twitter: https://twitter.com/CafedeVn
* Linkedin: https://www.linkedin.com/in/cafe-dev-407054199/
*/

class MultidimensionalArray {
    public static void main(String[] args) {

        int[][] a = {
            {1, -2, 3}, 
            {-4, -5, 6, 9}, 
            {7}, 
        };
      
        for (int i = 0; i < a.length; ++i) {
            for(int j = 0; j < a[i].length; ++j) {
                System.out.println(a[i][j]);
            }
        }
    }
}

Kết quả :

1
-2
3
-4
-5
6
9
7

Nên sử dụng vòng lặp for … each để lặp qua những mảng. Bạn hoàn toàn có thể thực thi việc đó bằng cách sử dụng vòng lặp for .. each như cách làm sau :

/**
* Cafedev.vn - Kênh thông tin IT hàng đầu Việt Nam
*
* @author cafedevn
* Contact: [email protected]
* Fanpage: https://www.facebook.com/cafedevn
* Instagram: https://instagram.com/cafedevn
* Twitter: https://twitter.com/CafedeVn
* Linkedin: https://www.linkedin.com/in/cafe-dev-407054199/
*/

class MultidimensionalArray {
    public static void main(String[] args) {

        // create a 2d array
        int[][] a = {
            {1, -2, 3}, 
            {-4, -5, 6, 9}, 
            {7}, 
        };
      
        // first for...each loop access the individual array
        // inside the 2d array
        for (int[] innerArray: a) {
            // second for...each loop access each element inside the row
            for(int data: innerArray) {
                System.out.println(data);
            }
        }
    }
}

Kết quả :

1
-2
3
-4
-5
6
9
7

3. Làm thế nào để khởi tạo một mảng 3d trong Java?

Bạn hoàn toàn có thể khởi tạo mảng 3 d tương tự như như mảng 2 d. Sau đây là một ví dụ :

// test is a 3d array
int[][][] test = {
        {
          {1, -2, 3}, 
          {2, 3, 4}
        }, 
        { 
          {-4, -5, 6, 9}, 
          {1}, 
          {2, 3}
        } 
};

Về cơ bản, mảng 3 d là một mảng gồm có nhiều mảng 2 d .
Tương tự như mảng 2 d, những hàng của mảng 3 d hoàn toàn có thể khác nhau về độ dài .

4. Ví dụ: Chương trình sử dụng vong lặp để in các phần tử của mảng 3d

/**
* Cafedev.vn - Kênh thông tin IT hàng đầu Việt Nam
*
* @author cafedevn
* Contact: [email protected]
* Fanpage: https://www.facebook.com/cafedevn
* Instagram: https://instagram.com/cafedevn
* Twitter: https://twitter.com/CafedeVn
* Linkedin: https://www.linkedin.com/in/cafe-dev-407054199/
*/

class ThreeArray {
    public static void main(String[] args) {

        // create a 3d array
        int[][][] test = {
            {
              {1, -2, 3}, 
              {2, 3, 4}
            }, 
            { 
              {-4, -5, 6, 9}, 
              {1}, 
              {2, 3}
            } 
        };

        // for..each loop to iterate through elements of 3d array
        for (int[][] array2D: test) {
            for (int[] array1D: array2D) {
                for(int item: array1D) {
                    System.out.println(item);
                }
            }
        }
    }
}

Khi bạn chạy chương trình, tác dụng sẽ là :

1
-2
3
2
3
4
-4
-5
6
9
1
2
3

Đăng ký kênh youtube để ủng hộ Cafedev nha các bạn, Thanks you!