Open In App

Program to convert a Map to a Stream in Java

Last Updated : 11 Dec, 2018
Improve
Improve
Like Article
Like
Save
Share
Report

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:

  1. 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:

    1. Get the Map<Key, Value>.
    2. Convert Map<Key, Value> into Set<Key> using Map.entrySet() method.
    3. Convert the obtained Set into Stream using Set.stream()
    4. Return/Print the Stream of Map.

    Program:




    // Java Program to convert
    // Map<Key, Value> into Stream
      
    import java.util.*;
    import java.util.stream.*;
      
    class GFG {
      
        // Generic function to convert List of
        // String to List of Integer
        public static <K, V> Stream<Map.Entry<K, V> >
        convertMapToStream(Map<K, V> map)
        {
      
            // Return the obtained Stream
            return map
      
                // Convert the Map to Set
                .entrySet()
      
                // Convert the Set to Stream
                .stream();
        }
      
        public static void main(String args[])
        {
      
            // Create a Map
            Map<Integer, String> map = new HashMap<>();
      
            // Add entries to the Map
            map.put(1, "Geeks");
            map.put(2, "forGeeks");
            map.put(3, "A computer Portal");
      
            // Print the Map
            System.out.println("Map: " + map);
      
            // Convert the Map to Stream
            Stream<Map.Entry<Integer, String> > stream = 
                                       convertMapToStream(map);
      
            // Print the TreeMap
            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]
    
  2. 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:

    1. Get the Map<Key, Value>.
    2. Convert Map<Key, Value> into Set<Key> using Map.keySet() method.
    3. Convert the obtained Set into Stream using Set.stream()
    4. Return/Print the Stream of Map.

    Program:




    // Java Program to convert
    // Map<Key, Value> into Stream
      
    import java.util.*;
    import java.util.stream.*;
      
    class GFG {
      
        // Generic function to convert List of
        // String to List of Integer
        public static <K, V> Stream<K>
        convertMapToStream(Map<K, V> map)
        {
      
            // Return the obtained Stream
            return map
      
                // Convert the Map to Set<Key>
                .keySet()
      
                // Convert the Set to Stream
                .stream();
        }
      
        public static void main(String args[])
        {
      
            // Create a Map
            Map<Integer, String> map = new HashMap<>();
      
            // Add entries to the Map
            map.put(1, "Geeks");
            map.put(2, "forGeeks");
            map.put(3, "A computer Portal");
      
            // Print the Map
            System.out.println("Map: " + map);
      
            // Convert the Map to Stream
            Stream<Integer> stream = convertMapToStream(map);
      
            // Print the TreeMap
            System.out.println("Stream: " 
                        + Arrays.toString(stream.toArray()));
        }
    }

    
    

    Output:

    Map: {1=Geeks, 2=forGeeks, 3=A computer Portal}
    Stream: [1, 2, 3]
    
  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:

    1. Get the Map<Key, Value>.
    2. Convert Map<Key, Value> into Set<Value> using Map.values() method.
    3. Convert the obtained Set into Stream using Set.stream()
    4. Return/Print the Stream of Map.

    Program:




    // Java Program to convert
    // Map<Key, Value> into Stream
      
    import java.util.*;
    import java.util.stream.*;
      
    class GFG {
      
        // Generic function to convert List of
        // String to List of Integer
        public static <K, V> Stream<V>
        convertMapToStream(Map<K, V> map)
        {
      
            // Return the obtained Stream
            return map
      
                // Convert the Map to Set<Value>
                .values()
      
                // Convert the Set to Stream
                .stream();
        }
      
        public static void main(String args[])
        {
      
            // Create a Map
            Map<Integer, String> map = new HashMap<>();
      
            // Add entries to the Map
            map.put(1, "Geeks");
            map.put(2, "forGeeks");
            map.put(3, "A computer Portal");
      
            // Print the Map
            System.out.println("Map: " + map);
      
            // Convert the Map to Stream
            Stream<String> stream = convertMapToStream(map);
      
            // Print the TreeMap
            System.out.println("Stream: " 
                         + Arrays.toString(stream.toArray()));
        }
    }

    
    

    Output:

    Map: {1=Geeks, 2=forGeeks, 3=A computer Portal}
    Stream: [Geeks, forGeeks, A computer Portal]
    


Like Article
Suggest improvement
Previous
Next
Share your thoughts in the comments

Similar Reads