Iterate HashSet with forEach() + Lambda Expression Example

Let's create a Java program to demonstrate different ways to iterate over a Set using JDK 7 and 8. 

Different Ways to Iterate over a Set

Please refer to the comments in the below program that are self-descriptive.
package net.javaguides.collections; import java.util.HashSet; import java.util.Iterator; import java.util.Set; /**  * Java program to demonstrate different ways to iterate over a Set in Java  *   * @author Ramesh Fadatare  *  */ public class DifferentWaysSetIterateProgram { public static void main(String...args) { Set < String > courses = new HashSet < String > (); courses.add("Java"); courses.add("C"); courses.add("C++"); courses.add("Python"); courses.add("Scala"); // Enhanced for loop for (String course: courses) { coursePrinter(course); } // Basic loop with iterator for (Iterator < String > it = courses.iterator(); it.hasNext();) { coursePrinter(it.next()); } // While loop with iterator Iterator < String > it = courses.iterator(); while (it.hasNext()) { String course = it.next(); coursePrinter(course); } // JDK 8 streaming example lambda expression courses.stream().forEach(course - > coursePrinter(course)); // JDK 8 streaming example method reference courses.stream().forEach(DifferentWaysSetIterateProgram::coursePrinter); // JDK 8 for each with lambda courses.forEach(course - > coursePrinter(course)); // JDK 8 for each courses.forEach(DifferentWaysSetIterateProgram::coursePrinter); } // common method to print course private static void coursePrinter(String course) { System.out.println("course name :: " + course); } }
Output:
course name :: Java course name :: C++ course name :: C course name :: Scala course name :: Python course name :: Java course name :: C++ course name :: C course name :: Scala course name :: Python course name :: Java course name :: C++ course name :: C course name :: Scala course name :: Python course name :: Java course name :: C++ course name :: C course name :: Scala course name :: Python course name :: Java course name :: C++ course name :: C course name :: Scala course name :: Python course name :: Java course name :: C++ course name :: C course name :: Scala course name :: Python course name :: Java course name :: C++ course name :: C course name :: Scala course name :: Python

References


Comments