Liên hệ
java

Mảng trong Java

Khái niệm về mảng, khái báo và khởi tạo mảng trong Java, duyệt qua phần tử mảng với vòng lặp for, các phép toán từ java.util.Arrays

Khai báo Khởi tạo Duyệt mảng Mảng nhiều chiều java.util.Arrays

Mảng - Khai báo mảng

Mảng trong Java là một tập hợp các biến có cùng kiểu. Mảng dùng đến khi cần lưu giữ danh sách các giá trị như các số

Để khai báo mảng cần chỉ ra kiểu dữ liệu của các phần tử tiếp theo là []

Ví dụ sau khai báo một mảng số nguyên có tên arr

int[] arr;

Bây giờ, bạn cần số phần tử có thể lưu trữ trong mảng. Để làm điều này bạn dùng từ khóa new gán ngay tại khai báo hoặc gán sau với cú pháp

int[] arr = new int[5];
Hoặc
int[] arr;
arr = new int[5];

Đoạn mã trên tạo ra mạng lưu được 5 phần tử. Trong mảng mỗi phần tử có một hằng số để xác định vị trí của nó trang mảng gọi là chỉ số (index). Để trỏ đến phần tử trong mảng cần viết tên mảng và theo sau là chỉ số nằm trong cặp ngoặc vuông []

Ví dụ gán giá trị cho phần tử mảng thứ 3

arr[2] = 42;

Lưu ý là chỉ số mảng bắt đầu từ 0, nên phần tử thứ 3 sẽ có chỉ số là 2.

Khởi tạo giá trị cho mảng

Java cung cấp cách nhanh chóng để khởi tạo giá trị mảng các kiểu nguyên thủy khi bạn đã biết giá trị của nó và chèn ngay vào các phần tử mảng

public class Program {
    public static void main(String[] args) {
        String[] myNames = { "A", "B", "C", "D"};
        System.out.println(myNames[2]);
    }
}
// output is C

Các giá trị trong mảng cách nhau bởi dấu phảy , nằm trong cặp {}. Như ví dụ trên khởi tạo mảng với 4 phần tử, lưu trữ các giá trị được cung cấp.

Nếu gán sau bằng cách tạo mảng với new thì khởi tạo giá trị như sau:

public class Program {
    public static void main(String[] args) {
        String[] myNames;
        myNames = new String [] { "A", "B", "C", "D"};
        System.out.println(myNames[2]);
    }
}
// output is C

Duyệt qua các phần tử mảng

Lấy số phần tử mảng

Mỗi đối tượng mảng, có thuộc tính length là số phần tử có trong mảng.

public class Program {
    public static void main(String[] args) {
        int[ ] intArr = new int[5];
        System.out.println(intArr.length);
    }
}
// output 5

Duyệt qua phần tử mảng với vòng lặp for

Khi đã có số lượng phần tử mảng, dễ dàng duyệt qua từng phần tử với vòng lặp for. Ví dụ sau tính tổng cộng giá trị các phần tử mảng

public class Program {
    public static void main(String[] args) {
        int [] myArr = {6, 42, 3, 7};
        int sum=0;
        for(int x=0; x < myArr.length; x++) {
           sum += myArr[x];
        }
        System.out.println(sum);
    }
}
// output 58

Ngoài cách sử dụng for tạo vòng lặp dựa vào số phần tử như trên, bạn cũng có thể duyệt qua các phần tử mảng theo cú pháp

for (datatype varname : arrayname) {
    //varname là phần tử mảng lấy được
}

Câu lệnh trên duyệt qua các phần tử mảng từ đầu đến cuối, áp dụng sửa lại ví dụ trên

public class Program {
    public static void main(String[] args) {
        int [] myArr = {6, 42, 3, 7};
        int sum=0;
        for (int ele: myArr)
            sum += ele;
        System.out.println(sum);
    }
}
// output 58

Mảng nhiều chiều

Mảng nhiều chiều là mảng nó chứa mảng khác. Mảng hai chiều phổ biến nhất. Để tạo mảng nhiều chiều thì cần chỉ ra số cặp ngoặc vuông khi khai báo bằng số chiều.

Tạo ra mảng hai chiều

//Mảng hai dòng và ba cột
int[][] sample = {
                    {1, 2, 3},
                    {4, 5, 6}
                 };

Để trỏ đến phần tử mảng, chỉ cần cung cấp số chỉ số theo số chiều, ví dụ:


public class Program {
    public static void main(String[] args) {
        int[][] sample = {{1, 2, 3}, {4, 5, 6} };
        //hoặc  sample = new int[][]{{1, 2, 3}, {4, 5, 6} };

        int x;
        x=sample[0][0];
        System.out.println(x);

        x=sample[0][1];
        System.out.println(x);

        x=sample[0][2];
        System.out.println(x);

        x=sample[1][0];
        System.out.println(x);

        x=sample[1][1];
        System.out.println(x);

        x=sample[1][2];
        System.out.println(x);
    }
}
/*Xuất ra
1
2
3
4
5
6 */

Phương thức tĩnh từ Arrays

Java có lớp java.util.Arrays trong đó có một số phương thức tĩnh làm việc với mảng như

binarySearch

public static int binarySearch(Object[] a, Object key)

Tìm kiếm trong mảng a phần tử có giá trị key bằng thuật toán tìm kiếm nhị phân. Lưu ý mảng cần được sắp xếp trước khi tìm kiếm. Nó trả về chỉ số phần tử tìm được, nếu khác trả về giá trị nhở hơn 0

equals

public static boolean equals(long[] a, long[] a2)

Trả về true nếu giá trị các phần tử tương ứng của hai mảng giống nhau.

fill

Tất cả các phần tử của mảng được gán bởi một giá trị cung cấp

public static void fill(int[] a, int val)

sort

Sắp xếp lại các phần tử (tăng dần)

public static void sort(Object[] a)

import java.util.Arrays;

public class ArrayDemo {

   public static void main(String[] args) {
       int iArr[] = {2, 1, 9, 6, 4};

       for (int number : iArr) {
            System.out.println("Number = " + number);
       }

       // sắp xếp mảng
       java.util.Arrays.sort(iArr);

       System.out.println("Mảng đã sắp xếp lại:");
       for (int number : iArr) {
           System.out.println("Number = " + number);
       }
   }
}

/*
Number = 2
Number = 1
Number = 9
Number = 6
Number = 4
Mảng đã sắp xếp lại:
Number = 1
Number = 2
Number = 4
Number = 6
Number = 9
*/

Vui lòng đăng ký ủng hộ kênh