當前位置: 首頁>>代碼示例 >>用法及示例精選 >>正文


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。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。