Table of Contents
Phương thức forEach() là một tính năng mới của java 8. Nó là một phương thức mặc định (default method) được định nghĩa trong interface Iterable và Stream. Các lớp Collection extends từ interface Iterable có thể sử dụng vòng lặp forEach() để duyệt các phần tử.
Định nghĩa của phương thức forEach() trong Interface Iterable:
1. Ví dụ sử dụng forEach() với Map
package com.maixuanviet.forEach; import java.util.HashMap; import java.util.Map; public class ForEachMapExample { public static void main(String[] args) { Map<Integer, String> hmap = new HashMap<Integer, String>(); hmap.put(1, "Java"); hmap.put(2, "Javascript"); hmap.put(3, "PHP"); hmap.put(4, "C#"); hmap.put(5, "C++"); // forEach to iterate and display each key and value pair of HashMap hmap.forEach((key, value) -> System.out.println(key + " - " + value)); } }
Output của chương trình trên như sau:
1 - Java 2 - Javascript 3 - PHP 4 - C# 5 - C++
2. Ví dụ sử dụng forEach() với List
package com.maixuanviet.forEach; import java.util.Arrays; import java.util.List; public interface ForEachExample { public static void main(String[] args) { List<String> languages = Arrays.asList("Java", "C#", "C++", "PHP", "Javascript"); System.out.println("Iterating by passing lambda expression: "); languages.forEach(lang -> System.out.println(lang)); System.out.println("Iterating by passing method reference: "); languages.forEach(System.out::println); } }
Output của chương trình trên như sau:
Iterating by passing lambda expression: Java C# C++ PHP Javascript Iterating by passing method reference: Java C# C++ PHP Javascript
3. Ví dụ sử dụng forEachOrdered()
Phương thức forEachOrdered() được sử dụng để duyệt các phần tử theo thứ tự được quy định bởi Stream.
package com.maixuanviet.forEach; import java.util.Arrays; import java.util.List; public class ForEachOrderedExample { public static void main(String[] args) { List<String> languages = Arrays.asList("Java", "C#", "C++", "PHP", "Javascript"); System.out.println("Iterating by passing lambda expression: "); languages.stream().forEachOrdered(lang -> System.out.println(lang)); System.out.println("Iterating by passing method reference: "); languages.stream().forEachOrdered(System.out::println); } }
Output của chương trình trên như sau:
Iterating by passing lambda expression: Java C# C++ PHP Javascript Iterating by passing method reference: Java C# C++ PHP Javascript
Related posts:
Java Program to Implement VList
Join and Split Arrays and Collections in Java
Guide to Java 8’s Collectors
Java Program to Perform Insertion in a BST
Java Program to Check Whether an Undirected Graph Contains a Eulerian Path
Guide to Dynamic Tests in Junit 5
Giới thiệu Google Guice – Binding
Function trong Java 8
Giới thiệu Json Web Token (JWT)
Java Multi-line String
Java Program to Implement Circular Singly Linked List
A Guide to JPA with Spring
Java String to InputStream
Generic Constructors in Java
Concurrent Test Execution in Spring 5
Converting String to Stream of chars
Java Program to Implement Find all Cross Edges in a Graph
Hướng dẫn Java Design Pattern – Command
DistinctBy in the Java Stream API
Converting Between a List and a Set in Java
Debug a HttpURLConnection problem
How to Break from Java Stream forEach
Collect a Java Stream to an Immutable Collection
Spring Data Java 8 Support
Checking for Empty or Blank Strings in Java
Spring Webflux with Kotlin
Quick Guide to java.lang.System
The Registration Process With Spring Security
Request Method Not Supported (405) in Spring
Spring @Primary Annotation
Java Program to Find SSSP (Single Source Shortest Path) in DAG (Directed Acyclic Graphs)
How to Use if/else Logic in Java 8 Streams