forEach() method:
- forEach() introduced in JDK8 to iterate the collection easily.
- forEach() defined in both Iterable interface and in Stream interface.
- forEach() method is a Default method.
default void forEach(Consumer<super T>action) |
Note: forEach() method takes a single parameter which is a functional interface. So, you can pass lambda expression or method reference as input.
Iterating List
Defining a List:
List<String> names = Arrays.asList(“C”, “Java”, “Python”); |
using lambda expression:
names.forEach(name->System.out.println(name)); |
using method reference:
names.forEach(System.out::println); |
Iterating Set
Defining a Set:
Set<String> uniqueNames = new HashSet<>(Arrays.asList(“C”, “C++”, “Java”)); |
using lambda expression:
uniqueNames.forEach(name->System.out.println(name)); |
using method reference:
uniqueNames.forEach(System.out::println); |
Iterating Map
Defining a Map:
Map<Integer, String> namesMap = new HashMap<>(); namesMap.put(1, “Java”); namesMap.put(2, “JDBC”); namesMap.put(3, “JSP”); |
Iterate map:
namesMap.forEach((key, value) -> System.out.println(key + ” ” + value)); |
Iterating Map using entrySet:
namesMap.entrySet().forEach(entry -> System.out.println( entry.getKey() + ” ” + entry.getValue())); |
Iterate List:
import java.util.*; import java.util.*; class Main { public static void main(String[] args) { List<Integer> list = new ArrayList<>(Arrays.asList(10,20,30,40,50)); list.forEach(x->System.out.println(x)); } } |
Iterate Set:
import java.util.*; import java.util.*; class Main { public static void main(String[] args) { List<Integer> list = new ArrayList<>(Arrays.asList(10,20,30,40,50)); Set<Integer> set = new HashSet<>(list); set.forEach(x->System.out.println(x)); } } |
Iterate Map:
import java.util.*; import java.util.*; class Main { public static void main(String[] args) { Map<Integer,String> map = new HashMap<>(); map.put(1, “Java”); map.put(2, “Servlets”); map.put(3, “JSP”); map.forEach((k, v)->System.out.println(k + ” = ” + v)); } } |