The LinkedHashSet is an ordered version of HashSet that maintains a doubly-linked List across all elements. When the iteration order is needed to be maintained this class is used. When iterating through a HashSet the order is unpredictable, while a LinkedHashSet lets us iterate through the elements in the order in which they were inserted. When cycling through LinkedHashSet using an iterator, the elements will be returned to the order in which they were inserted.
Different Ways to Iterate LinkedHashSet Elements:
- Using the for-each loop
- Using iterators
- Using JDK 1.8 streams
Method 1: Using the for-each loop
// Java Program to Iterate LinkedHashSet Elements import java.util.*;
import java.lang.*;
import java.io.*;
class GFG {
// Main driver method
public static void main(String[] args)
throws java.lang.Exception
{
// Creating a LinkedHashSet
LinkedHashSet<Integer> hashSet
= new LinkedHashSet<Integer>();
// Adding elements to LinkedHashSet
// Custom inputs
hashSet.add( 1 );
hashSet.add( 2 );
hashSet.add( 3 );
hashSet.add( 4 );
hashSet.add( 5 );
// Iteration over HashSet
// using for-each loop
for (Integer element : hashSet)
// Print the elements of LinkedHashSet created above
System.out.println( "Element is " + element);
}
} |
Element is 1 Element is 2 Element is 3 Element is 4 Element is 5
Method 2: Using iterators
// Java Program to Iterate LinkedHashSet Elements import java.util.*;
import java.lang.*;
import java.io.*;
class GFG {
// Main driver method
public static void main(String[] args)
throws java.lang.Exception
{
// Creating a LinkedHashSet
LinkedHashSet<Integer> hashSet
= new LinkedHashSet<Integer>();
// Adding elements to LinkedHashSet
Custom inputs hashSet.add( 1 );
hashSet.add( 2 );
hashSet.add( 3 );
hashSet.add( 4 );
hashSet.add( 5 );
// Method returning iterator of same elements
// as in above LinkedHashSet
Iterator iter = hashSet.iterator();
// Condition check
// hasNext() method returns true
// if iterator has more elements to iterate
// else returns false (where cond violates)
while (iter.hasNext())
// Print all the elements of LinkedHashSet
// using next() method
System.out.println( "Element is " + iter.next());
}
} |
Element is 1 Element is 2 Element is 3 Element is 4 Element is 5
Method 3: Using JDK 1.8 streams
// Java Program to Iterate LinkedHashSet Elements import java.util.*;
import java.lang.*;
import java.io.*;
class GFG {
// Main driver method
public static void main(String[] args)
throws java.lang.Exception
{
// Creating a LinkedHashSet
LinkedHashSet<Integer> hashSet
= new LinkedHashSet<Integer>();
// Adding elements to LinkedHashSet
// Custom inputs
hashSet.add( 1 );
hashSet.add( 2 );
hashSet.add( 3 );
hashSet.add( 4 );
hashSet.add( 5 );
// Method returning iterator of same elements
// as in above LinkedHashSet
Iterator iter = hashSet.iterator();
// Stream API used to process collection
// of objects
// Iterating using for-each
hashSet.stream().forEach(element -> {
// Print all elements of LinkedHashSet
System.out.println( "Element is " + element);
});
}
} |
Element is 1 Element is 2 Element is 3 Element is 4 Element is 5