A RetroSearch Logo

Home - News ( United States | United Kingdom | Italy | Germany ) - Football scores

Search Query:

Showing content from https://www.geeksforgeeks.org/java/convert-stream-set-java/ below:

Convert Stream to Set in Java

Convert Stream to Set in Java

Last Updated : 11 Jul, 2025

Below given are some methods which can be used to convert Stream to Set in Java.

Method 1 : Using Collectors

Stream collect() method takes elements from a stream and stores them in a collection.

collect(Collector.toSet())

collects elements from a stream to a Set. Stream.collect() method can be used to collect elements of a stream in a container. The Collector which is returned by Collectors.toSet() can be passed that accumulates the elements of stream into a new Set.

Java
// Java code for converting 
// Stream to Set using Collectors
import java.util.*;
import java.util.stream.Stream;
import java.util.stream.Collectors;

class GFG {
    
    // Driver code
    public static void main(String[] args) {
    
    // Creating a Stream of Integers
    Stream<Integer> stream = Stream.of(-2, -1, 0, 1, 2);
    
    // Using Stream.collect() to collect the 
    // elements of stream in a container.
    Set<Integer> streamSet = stream.collect(Collectors.toSet());
    
    // Displaying the elements
    streamSet.forEach(num -> System.out.println(num));
    }
}
Method 2 : Converting Stream to Array and then to Set

The problem of converting Stream into Set can be divided into two parts :

1) Convert Stream to an Array
2) Convert Array to a Set
Java
// Java code for converting 
// Stream to Set using Divide 
// and Conquer
import java.util.*;
import java.util.stream.Stream;
import java.util.stream.Collectors;

class GFG {
    
    // Driver code
    public static void main(String[] args) {
    
    // Creating a Stream of Strings
    Stream<String> stream = Stream.of("G", "E", "K", "S");
    
    // Converting Stream into an Array
    String[] arr = stream.toArray(String[] :: new);
    
    // Creating a HashSet
    Set<String> set = new HashSet<>();
    
    // Converting Array to set
    Collections.addAll(set,arr);
    
    // Displaying the elements
    set.forEach(str -> System.out.println(str));
    }
}
Note :

Output is random because HashSet takes input in random order as generated hash value.

Method 3 : Using forEach

Stream can be converted into Set using

forEach()

. Loop through all elements of the stream using

forEach()

method and then use set.add() to add each elements into an empty set.

Java
// Java code for converting 
// Stream to Set using forEach
import java.util.*;
import java.util.stream.Stream;
import java.util.stream.Collectors;

class GFG {
    
    // Driver code
    public static void main(String[] args) {
    
    // Creating a Stream of Integers
    Stream<Integer> stream = Stream.of(5, 10, 15, 20, 25);

    // Creating a HashSet
    Set<Integer> set = new HashSet<>();
    
    // using set.add() to add elements 
    // of stream into empty set
    stream.forEach(set::add);
    
    // Displaying the elements
    set.forEach(num -> System.out.println(num));
    }
}
Note :

If Stream is parallel, then elements may not be processed in original order using

forEach()

method. To preserve the original order,

forEachOrdered()

method is used.

Convert a Set to Stream in Java

RetroSearch is an open source project built by @garambo | Open a GitHub Issue

Search and Browse the WWW like it's 1997 | Search results from DuckDuckGo

HTML: 3.2 | Encoding: UTF-8 | Version: 0.7.4