当前位置: 首页>>代码示例 >>用法及示例精选 >>正文


Java Map转Stream用法及代码示例


Stream 是支持各种方法的对象序列,这些方法可以通过管道传输以产生所需的结果。

以下是 Java 中将 Map 转换为 Stream 的各种方法:

  1. 将完整的 Map<Key, Value> 转换为 Stream:这可以借助 Map.entrySet() 方法来完成,该方法返回此映射中包含的映射的 Set 视图。在 Java 8 中,可以使用 Set.stream() 方法将此返回的集合轻松转换为键值对流。

    算法

    1. 获取映射<键,值>。
    2. 使用 Map.entrySet() 方法将 Map<Key, Value> 转换为 Set<Key>。
    3. 使用Set将得到的Set转换成Stream.stream()
    4. 返回/打印Map流。

    程序:

    
    // 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())); 
        } 
    } 
    输出:
    Map: {1=Geeks, 2=forGeeks, 3=A computer Portal}
    Stream: [1=Geeks, 2=forGeeks, 3=A computer Portal]
    
  2. 仅将 Map<Key, Value> 的 Keyset 转换为 Stream:这可以借助 Map.keySet() 方法来完成,该方法返回此映射中包含的键的 Set 视图。在 Java 8 中,可以使用 Set.stream() 方法将此返回的集合轻松转换为键值对流。

    算法

    1. 获取映射<键,值>。
    2. 使用 Map.keySet() 方法将 Map<Key, Value> 转换为 Set<Key>。
    3. 使用Set将得到的Set转换成Stream.stream()
    4. 返回/打印Map流。

    程序:

    
    // 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())); 
        } 
    } 
    输出:
    Map: {1=Geeks, 2=forGeeks, 3=A computer Portal}
    Stream: [1, 2, 3]
    
  3. 仅将 Map<Key, Value> 的 Value 转换为 Stream:这可以借助 Map.values() 方法来完成,该方法返回此映射中包含的值的 Set 视图。在 Java 8 中,可以使用 Set.stream() 方法将此返回的集合轻松转换为键值对流。

    算法

    1. 获取映射<键,值>。
    2. 使用 Map.values() 方法将 Map<Key, Value> 转换为 Set<Value>。
    3. 使用Set将得到的Set转换成Stream.stream()
    4. 返回/打印Map流。

    程序:

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


相关用法


注:本文由纯净天空筛选整理自RishabhPrabhu大神的英文原创作品 Program to convert a Map to a Stream in Java。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。