Trong Java, vòng lặp for-each được sử dụng để lặp qua các phần tử của mảng và tập hợp [như ArrayList]. Nó còn được gọi là vòng lặp for nâng cao
cú pháp vòng lặp for-each
Cú pháp của vòng lặp cho từng Java là
for[dataType item : array] {
...
}
Nơi đây,
- mảng - một mảng hoặc một bộ sưu tập
- mục - mỗi mục của mảng/bộ sưu tập được gán cho biến này
- dataType - kiểu dữ liệu của mảng/bộ sưu tập
ví dụ 1. In các phần tử mảng
// print array elements
class Main {
public static void main[String[] args] {
// create an array
int[] numbers = {3, 9, 5, -5};
// for each loop
for [int number: numbers] {
System.out.println[number];
}
}
}
đầu ra
3 9 5 -5
Ở đây, chúng tôi đã sử dụng vòng lặp for-each để in từng phần tử của mảng số một
- Trong lần lặp đầu tiên, mục sẽ là 3
- Trong lần lặp thứ hai, mục sẽ là 9
- Trong lần lặp thứ ba, mục sẽ là 5
- Trong lần lặp thứ tư, mục sẽ là -5
ví dụ 2. Tổng các phần tử mảng
// Calculate the sum of all elements of an array
class Main {
public static void main[String[] args] {
// an array of numbers
int[] numbers = {3, 4, 5, -5, 0, 12};
int sum = 0;
// iterating through each element of the array
for [int number: numbers] {
sum += number;
}
System.out.println["Sum = " + sum];
}
}
đầu ra
Sum = 19
Trong chương trình trên, việc thực hiện vòng lặp
// print array elements
class Main {
public static void main[String[] args] {
// create an array
int[] numbers = {3, 9, 5, -5};
// for each loop
for [int number: numbers] {
System.out.println[number];
}
}
}
4 giống nhưIterationVariables1number = 3
tổng = 0 + 3 = 32số = 4
tổng = 3 + 4 = 73số = 5
sum = 7 + 5 = 124number = -5
sum = 12 + [-5] = 75number = 0
sum = 7 + 0 = 76number = 12
sum = 7 + 12 = 19
Như chúng ta có thể thấy, chúng ta đã thêm từng phần tử của mảng số vào biến tổng trong mỗi lần lặp của vòng lặp
cho vòng lặp Vs cho mỗi vòng lặp
Hãy xem vòng lặp
// print array elements
class Main {
public static void main[String[] args] {
// create an array
int[] numbers = {3, 9, 5, -5};
// for each loop
for [int number: numbers] {
System.out.println[number];
}
}
}
0 khác với vòng lặp Java for thông thường như thế nào1. Sử dụng vòng lặp
class Main {
public static void main[String[] args] {
char[] vowels = {'a', 'e', 'i', 'o', 'u'};
// iterating through an array using a for loop
for [int i = 0; i < vowels.length; ++ i] {
System.out.println[vowels[i]];
}
}
}
đầu ra
a e i o u
2. Sử dụng vòng lặp for-each
________số 8đầu ra
a e i o u
Ở đây, đầu ra của cả hai chương trình là như nhau. Tuy nhiên, vòng lặp for-each dễ viết và dễ hiểu hơn
Đây là lý do tại sao vòng lặp for-each được ưu tiên hơn vòng lặp for khi làm việc với mảng và tập hợp
Trong Java, Danh sách là một giao diện của khung Bộ sưu tập. Nó cung cấp cho chúng tôi để duy trì bộ sưu tập các đối tượng theo thứ tự. Các lớp triển khai của giao diện Danh sách là ArrayList, LinkedList, Stack và Vector. ArrayList và LinkedList được sử dụng rộng rãi trong Java. Trong phần này, chúng ta sẽ tìm hiểu cách lặp một Danh sách trong Java. Trong suốt phần này, chúng ta sẽ sử dụng ArrayList
Java cho vòng lặp
- Cơ bản cho vòng lặp
- Tăng cường cho vòng lặp
Trình lặp Java
Phương thức Java forEach
- Có thể lặp lại. cho mỗi[]
- Dòng. cho mỗi[]
Java cho vòng lặp
Cơ bản cho vòng lặp
Java cho vòng lặp là vòng lặp điều khiển luồng phổ biến nhất cho phép lặp. Vòng lặp for chứa một biến hoạt động như một số chỉ mục. Nó thực thi cho đến khi toàn bộ Danh sách không lặp lại
cú pháp
IterateListExample1. java
đầu ra
// print array elements
class Main {
public static void main[String[] args] {
// create an array
int[] numbers = {3, 9, 5, -5};
// for each loop
for [int number: numbers] {
System.out.println[number];
}
}
}
0Tăng cường cho vòng lặp
Nó tương tự như vòng lặp for cơ bản. Nó nhỏ gọn, dễ dàng và dễ đọc. Nó được sử dụng rộng rãi để thực hiện duyệt qua Danh sách. Thật dễ dàng so với vòng lặp for cơ bản
cú pháp
IterateListExample2. java
đầu ra
// print array elements
class Main {
public static void main[String[] args] {
// create an array
int[] numbers = {3, 9, 5, -5};
// for each loop
for [int number: numbers] {
System.out.println[number];
}
}
}
0Trình lặp Java
Trình lặp
Java cung cấp một Trình lặp giao diện để lặp lại các Bộ sưu tập, chẳng hạn như Danh sách, Bản đồ, v.v. Nó chứa hai phương thức chính next[] và hasNext[] cho phép chúng ta thực hiện một phép lặp trên Danh sách
tiếp theo[]. Phương thức next[] thực hiện lặp theo thứ tự chuyển tiếp. Nó trả về phần tử tiếp theo trong Danh sách. Nó ném NoSuchElementException nếu lần lặp không chứa phần tử tiếp theo trong Danh sách. Phương thức này có thể được gọi lặp đi lặp lại để duyệt qua danh sách hoặc xen kẽ với các lệnh gọi tới previous[] để quay lại
cú pháp
hasNext[]. Phương thức hasNext[] giúp chúng ta tìm phần tử cuối cùng của List. Nó kiểm tra xem Danh sách có phần tử tiếp theo hay không. Nếu phương thức hasNext[] lấy phần tử trong khi di chuyển theo hướng thuận, trả về true, ngược lại trả về false và kết thúc thực thi
cú pháp
IterateListExample3. java
đầu ra
// print array elements
class Main {
public static void main[String[] args] {
// create an array
int[] numbers = {3, 9, 5, -5};
// for each loop
for [int number: numbers] {
System.out.println[number];
}
}
}
0Danh sáchIterator
ListIterator cũng là một giao diện thuộc về java. gói sử dụng. Nó mở rộng giao diện Iterator. Nó cho phép chúng tôi lặp lại Danh sách theo thứ tự tiến hoặc lùi. Lặp lại chuyển tiếp trên Danh sách cung cấp cùng một cơ chế, như được sử dụng bởi Iterator. Chúng tôi sử dụng phương thức next[] và hasNext[] của giao diện Iterator để lặp qua Danh sách
IterateListExample4. java
đầu ra
// print array elements
class Main {
public static void main[String[] args] {
// create an array
int[] numbers = {3, 9, 5, -5};
// for each loop
for [int number: numbers] {
System.out.println[number];
}
}
}
0Phương thức Java forEach
Có thể lặp lại. cho mỗi[]
Giao diện Iterable cung cấp phương thức forEach[] để lặp qua Danh sách. Nó có sẵn kể từ Java 8. Nó thực hiện hành động được chỉ định cho từng phần tử cho đến khi tất cả các phần tử đã được xử lý hoặc hành động đưa ra một ngoại lệ. Nó cũng chấp nhận các biểu thức Lambda làm tham số
cú pháp
Việc triển khai mặc định hoạt động như
Nó chấp nhận hành động như một tham số không can thiệp [có nghĩa là nguồn dữ liệu hoàn toàn không bị sửa đổi trong quá trình thực thi đường dẫn luồng] để thực hiện trên các phần tử. Nó ném NullPulumException nếu hành động được chỉ định là null
Người tiêu dùng là một giao diện chức năng có thể được sử dụng làm mục tiêu gán cho biểu thức lambda hoặc tham chiếu phương thức. T là loại đầu vào cho hoạt động. Nó đại diện cho một hoạt động chấp nhận một đối số đầu vào duy nhất và không trả về kết quả nào