Traverse through a HashSet in Java
Last Updated :
15 Aug, 2022
As we all know HashSet elements are unordered so the traversed elements can be printed in any order. In order to perform operations over our HashSet such as insertion, deletion, updating elements than first we need to reach out in order to access the HashSet. below are few ways with which we can iterate over elements to perform any kind of operations o Set elements as listed below.
Methods:
- Using for-each loop
- Using forEach method
- Using Iterators
Method 1: Using for-each loop
It is another array traversing technique like for loop, while loop, do-while loop introduced in Java 5. It starts with the keyword for like a normal for-loop. Instead of declaring and initializing a loop counter variable, you declare a variable that is the same type as the base type of the array, followed by a colon, which is then followed by the array name array traversing technique like for loop, while loop, do-while loop introduced in Java 5.
Example:
Java
// Java program to demonstrate iteration over
// HashSet using an Enhanced for-loop
import java.util.*;
class IterationDemo {
public static void main(String[] args)
{
// your code goes here
HashSet<String> h = new HashSet<String>();
// Adding elements into HashSet using add()
h.add("Geeks");
h.add("for");
h.add("Geeks");
// Iterating over hash set items
for (String i : h)
System.out.println(i);
}
}
Method 2: Using forEach() method of Stream class
Stream forEach(Consumer action) performs an action for each element of the stream. Stream forEach(Consumer action) is a terminal operation that is, it may traverse the stream to produce a result or a side-effect.
Tip: In Java 8 or above, we can iterate a List or Collection using forEach() method.
Example:
Java
// Java program to demonstrate iteration over
// HashSet using forEach() method
import java.util.*;
class IterationDemo {
public static void main(String[] args)
{
// your code goes here
HashSet<String> h = new HashSet<String>();
// Adding elements into HashSet using add()
h.add("Geeks");
h.add("for");
h.add("Geeks");
// Iterating over hash set items
h.forEach(i -> System.out.println(i));
}
}
Method 3: Using an Iterator
The iterator() method is used to get an iterator over the elements in this set. The elements are returned in no particular order. Below is the java program to demonstrate it.
Example
Java
// Java program to Illustrate Traversal over HashSet
// Using an iterator
// Importing required classes
import java.util.*;
// Main class
class GFG {
// Main driver method
public static void main(String[] args)
{
// Creating empty HashSet by declaring object
// of HashSet class of string type
HashSet<String> h = new HashSet<String>();
// Adding elements into HashSet
// using add() method
h.add("Geeks");
h.add("for");
h.add("Geeks");
// Iterating over HashSet elements
// using iterator
Iterator<String> i = h.iterator();
// Holds true till there is single element remaining
// in the Set
while (i.hasNext())
// Printing the elements
System.out.println(i.next());
}
}
Time complexity: O(n) to add n elements
Auxiliary space: O(n)