1. Duyệt mảng trong Java là gì?

Duyệt mảng trong Java là quá trình truy cập từng phần tử của một mảng. Duyêt mảng thường được thực hiện bắt đầu với phần tử đầu tiên và cho đến khi kết thúc mảng. Tuy nhiên, nó cũng có thể di chuyển ngược hoặc bỏ qua các phần tử. Ở đây, chúng ta sẽ tập trung vào việc duyệt một mảng từ đầu đến cuối.

Duyệt mảng trong Java thông thường sẽ sử dụng các vòng lặp. Bằng cách truy xuất tới các phần tử và sử dụng thuộc tính length để chỉ định số vòng lặp. Ta có thể truy xuất lần lượt tới các phần tử trong mảng và thực hiện việc duyệt mảng trong Java.

2. Lấy số phần tử của mảng trong Java

Để biết một mảng có bao nhiêu phần tử hay độ dài của mảng ta sử dụng thuộc tính length.

Ví dụ:

class Main {
  public static void main(String[] args) {
    String[] cars = {"Vinfast", "BMW", "Ford", "Mazda"};
    System.out.println(cars.length);
  }
}

Kết quả

4

3. Duyệt mảng trong Java bằng vòng lặp for

Như đã nói ở trên có thể lặp qua các phần tử mảng với vòng lặp for và sử dụng thuộc tính length để chỉ định số lần vòng lặp sẽ chạy.

Ví dụ: tính tổng giá trị của số phần tử trong mảng

public class Main {
    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

Kết quả

58

Vòng lặp for thường thích hợp hơn vì chúng ta biết độ dài của mảng và nó đơn giản hơn. Và thuộc tính length cũng thích hợp để điều khiển vòng lặp và khi sử dụng một biến cố định có thể đã được sử dụng để khai báo mảng.

Ta thử xem một ví dụ sau:

int[] ages = new int[SIZE];
...
for(int i = 0; i < SIZE; i++) {
    ages[i] = 5;
}
// dinh nghia lai mang
int[] ages = new int[DIFFERENT_SIZE];
...
for(int i = 0; i < SIZE; i++) {
    ages[i] = 5;
}

Vòng lặp thứ hai sẽ không thực thi đúng bởi vì chúng ta quên thay đổi hằng số SIZE và thậm chí có thể ném ra một ngoại lệ nếu mảng mới có kích thước nhỏ hơn SIZE. Nếu thay vào đó là sử dụng length thì sẽ không sao. Lưu ý rằng vòng lặp for với việc khai báo biến i trong vòng lặp for. Điều này hạn chế quyền truy cập vào biến chỉ cho các câu lệnh đó trong vòng lặp for. Chúng ta có thể viết lại vòng lặp for để sử dụng biến i bên ngoài. Tuy nhiên, cách khai báo như trên được coi là hình thức tốt hơn để hạn chế quyền truy cập vào một biến chỉ cho những câu lệnh cần truy cập.

4. Duyệt mảng trong Java bằng vòng lặp while

Không giới hạn trong vòng lặp for, chúng ta cũng có thể sử dụng các loại vòng lặp khác trong Java, ví dụ như vòng lặp while chẳng hạn để truy xuất lần lượt tới các phần tử trong mảng và thực hiện việc duyệt mảng trong Java.

Ví dụ:

class Main{
  public static void main(String[] args){
    String pref[] = {"Java", "PHP", "Python"};
    
    int i = 0;
    while (i < pref.length){
        System.out.println(pref[i]);
        i++;
    }
  }
}

Kết quả

Java 
PHP
Python

5. Duyệt mảng trong Java bằng vòng lặp for each

Ngoài việc sử dụng các vòng lặp cơ bản như for hay while, đối với các loại dữ liệu thuộc kiểu colection như mảng thì chúng ta cũng có thể sử dụng tới vòng lặp for each để duyệt mảng trong Java.

Ví dụ:

class Main{
  public static void main(String[] args){
    String prg[] = {"Java", "PHP", "Python"};
    
    for (String str: prg){
      System.out.println(str);
    }
  }
}

Kết quả

Java
PHP
Python

Nếu so sánh giữa for và for each thì ta có thể dễ dàng nhận ra là for each dễ viết và dễ đọc hơn. Đồng thời nó cũng không yêu cầu bộ đến và phải sử dụng thuộc tính length.