Phương thức forEach trong java 8 là một tính năng mới của java 8. Nó được định nghĩa trong giao diện Iterable và Stream. Nó là một phương thức mặc định được định nghĩa trong giao diện Iterable. Các lớp Collection extends giao diện Iterable có thể sử dụng vòng lặp forEach để duyệt các phần tử.
Nội dung chính
Định nghĩa của phương thức forEach() trong Iterable Interface
default void forEach(Consumer<super T> action)
Ví dụ về forEach() trong java
Ví dụ 1: duyệt các phần tử của Collection bằng cách sử dụng biểu thức lambda.
package vn.viettuts.java8; import java.util.ArrayList; import java.util.List; public class ForEachExample1 { public static void main(String[] args) { List<String> list = new ArrayList<String>(); list.add("Java"); list.add("PHP"); list.add("C++"); list.add("Python"); list.forEach((element) -> { System.out.println(element); }); } }
Kết quả:
Java PHP C++ Python
Ví dụ 2: duyệt các phần tử của Collection bằng cách sử dụng phương thức tham chiếu.
package vn.viettuts.java8; import java.util.ArrayList; import java.util.List; public class ForEachExample2 { public static void main(String[] args) { List<String> list = new ArrayList<String>(); list.add("Java"); list.add("PHP"); list.add("C++"); list.add("Python"); // duyệt các phần tử của mảng bằng cách truyền phương thức tham chiếu list.forEach(System.out::println); } }
Kết quả:
Java PHP C++ Python
Phương thức forEachOrdered() của lớp Stream trong java
Cùng với phương thức forEach(), Java cung cấp thêm một phương thức forEachOrdered(). Nó được sử dụng để duyệt các phần tử theo thứ tự được quy định bởi Stream.
package vn.viettuts.java8; import java.util.ArrayList; import java.util.List; public class ForEachOrderedExample { public static void main(String[] args) { List<String> list = new ArrayList<String>(); list.add("Java"); list.add("PHP"); list.add("C++"); list.add("Python"); System.out.println("duyệt các phần tử của mảng bằng cách " + "sử dụng biểu thức lambda: "); list.stream().forEachOrdered(p->System.out.println(p)); System.out.println("duyệt các phần tử của mảng bằng cách " + "truyền phương thức tham chiếu: "); list.stream().forEachOrdered(System.out::println); } }
Kết quả:
duyệt các phần tử của mảng bằng cách sử dụng biểu thức lambda: Java PHP C++ Python duyệt các phần tử của mảng bằng cách truyền phương thức tham chiếu: Java PHP C++ Python