Wednesday, September 15, 2021

Convert Stream to Set in Java

Convert Stream to Set in Java, Core Java, Oracle Java, Oracle Java Tutorial and Materials, Oracle Java Guides, Oracle Java Preparation, Java Career

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.

Read More: 1Z0-808: Java SE 8 Programmer I

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 code for converting

// Stream to Set using Collectors

import java.util.*;

import java.util.stream.Stream;

import java.util.stream.Collectors;

class OJC {

// 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));

}

}

Output:

-1
0
-2
1
2

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 code for converting
// Stream to Set using Divide
// and Conquer
import java.util.*;
import java.util.stream.Stream;
import java.util.stream.Collectors;

class OJC {
// 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));
}
}

Output:

S
E
G
K

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 code for converting
// Stream to Set using forEach
import java.util.*;
import java.util.stream.Stream;
import java.util.stream.Collectors;

class OJC {
// 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));
}
}

Output:

20
5
25
10
15

Source: geeksforgeeks.org

Related Posts

0 comments:

Post a Comment