A Stream is a sequence of objects that supports various methods which can be pipelined to produce the desired result.
Below are various method to convert Map to Stream in Java:
- Converting complete Map<Key, Value> into Stream: This can be done with the help of Map.entrySet() method which returns a Set view of the mappings contained in this map. In Java 8, this returned set can be easily converted into a Stream of key-value pairs using Set.stream() method.
Algorithm:
- Get the Map<Key, Value>.
- Convert Map<Key, Value> into Set<Key> using Map.entrySet() method.
- Convert the obtained Set into Stream using Set.stream()
- Return/Print the Stream of Map.
Program:
import java.util.*;
import java.util.stream.*;
class GFG {
public static <K, V> Stream<Map.Entry<K, V> >
convertMapToStream(Map<K, V> map)
{
return map
.entrySet()
.stream();
}
public static void main(String args[])
{
Map<Integer, String> map = new HashMap<>();
map.put( 1 , "Geeks" );
map.put( 2 , "forGeeks" );
map.put( 3 , "A computer Portal" );
System.out.println( "Map: " + map);
Stream<Map.Entry<Integer, String> > stream =
convertMapToStream(map);
System.out.println( "Stream: "
+ Arrays.toString(stream.toArray()));
}
}
|
Output:
Map: {1=Geeks, 2=forGeeks, 3=A computer Portal}
Stream: [1=Geeks, 2=forGeeks, 3=A computer Portal]
- Converting only the Keyset of the Map<Key, Value> into Stream: This can be done with the help of Map.keySet() method which returns a Set view of the keys contained in this map. In Java 8, this returned set can be easily converted into a Stream of key-value pairs using Set.stream() method.
Algorithm:
- Get the Map<Key, Value>.
- Convert Map<Key, Value> into Set<Key> using Map.keySet() method.
- Convert the obtained Set into Stream using Set.stream()
- Return/Print the Stream of Map.
Program:
import java.util.*;
import java.util.stream.*;
class GFG {
public static <K, V> Stream<K>
convertMapToStream(Map<K, V> map)
{
return map
.keySet()
.stream();
}
public static void main(String args[])
{
Map<Integer, String> map = new HashMap<>();
map.put( 1 , "Geeks" );
map.put( 2 , "forGeeks" );
map.put( 3 , "A computer Portal" );
System.out.println( "Map: " + map);
Stream<Integer> stream = convertMapToStream(map);
System.out.println( "Stream: "
+ Arrays.toString(stream.toArray()));
}
}
|
Output:
Map: {1=Geeks, 2=forGeeks, 3=A computer Portal}
Stream: [1, 2, 3]
- Converting only the Value of the Map<Key, Value> into Stream: This can be done with the help of Map.values() method which returns a Set view of the values contained in this map. In Java 8, this returned set can be easily converted into a Stream of key-value pairs using Set.stream() method.
Algorithm:
- Get the Map<Key, Value>.
- Convert Map<Key, Value> into Set<Value> using Map.values() method.
- Convert the obtained Set into Stream using Set.stream()
- Return/Print the Stream of Map.
Program:
import java.util.*;
import java.util.stream.*;
class GFG {
public static <K, V> Stream<V>
convertMapToStream(Map<K, V> map)
{
return map
.values()
.stream();
}
public static void main(String args[])
{
Map<Integer, String> map = new HashMap<>();
map.put( 1 , "Geeks" );
map.put( 2 , "forGeeks" );
map.put( 3 , "A computer Portal" );
System.out.println( "Map: " + map);
Stream<String> stream = convertMapToStream(map);
System.out.println( "Stream: "
+ Arrays.toString(stream.toArray()));
}
}
|
Output:
Map: {1=Geeks, 2=forGeeks, 3=A computer Portal}
Stream: [Geeks, forGeeks, A computer Portal]