📜  使用 forEach 循环在Java中展平 Map 流

📅  最后修改于: 2022-05-13 01:54:32.250000             🧑  作者: Mango

使用 forEach 循环在Java中展平 Map 流

给定Java中的 Map 流,任务是使用 forEach() 方法展平流。

例子:

Input: map = {1=[1, 2], 2=[3, 4, 5, 6], 3=[7, 8, 9]}
Output: [1, 2, 3, 4, 5, 6, 7, 8, 9]

Input: map = {1=[G, e, e, k, s], 2=[F, o, r], 3=[G, e, e, k, s]}
Output: [G, e, e, k, s, F, o, r]

方法:

  1. 让地图变平。
  2. 创建一个空列表来收集展平的元素。
  3. 在 forEach 循环的帮助下,将 Map 值的每个元素转换为流并将其添加到列表中
  4. 此列表是所需的展平地图。

下面是上述方法的实现:

示例 1:使用整数列表。

// Java program to flatten a stream of map
// using forEach() method
  
import java.util.*;
import java.util.stream.*;
  
class GFG {
  
    // Function to flatten a Stream of Map
    public static  List flattenStream(Collection > lists)
    {
  
        // Create an empty list to collect the stream
        List finalList = new ArrayList<>();
  
        // Using forEach loop
        // convert each list into stream
        // and add the stream into list
        for (List list : lists) {
            list.stream()
                .forEach(finalList::add);
        }
  
        // Return the final flattened list
        return finalList;
    }
  
    public static void main(String[] args)
    {
  
        // Get the map to be flattened.
        Map > map = new HashMap<>();
        map.put(1, Arrays.asList(1, 2));
        map.put(2, Arrays.asList(3, 4, 5, 6));
        map.put(3, Arrays.asList(7, 8, 9));
  
        // Flatten the Stream
        List flatList = flattenStream(map.values());
  
        // Print the flattened list
        System.out.println(flatList);
    }
}
输出:
[1, 2, 3, 4, 5, 6, 7, 8, 9]

示例 2:使用字符列表。

// Java program to flatten a stream of map
// using forEach() method
  
import java.util.*;
import java.util.stream.*;
  
class GFG {
  
    // Function to flatten a Stream of Map
    public static  List flattenStream(Collection > lists)
    {
  
        // Create an empty list to collect the stream
        List finalList = new ArrayList<>();
  
        // Using forEach loop
        // convert each list into stream
        // and add the stream into list
        for (List list : lists) {
            list.stream()
                .forEach(finalList::add);
        }
  
        // Return the final flattened list
        return finalList;
    }
  
    public static void main(String[] args)
    {
  
        // Get the map to be flattened.
        Map > map = new HashMap<>();
        map.put(1, Arrays.asList('G', 'e', 'e', 'k', 's'));
        map.put(2, Arrays.asList('F', 'o', 'r'));
        map.put(3, Arrays.asList('G', 'e', 'e', 'k', 's'));
  
        // Flatten the Stream
        List flatList = flattenStream(map.values());
  
        // Print the flattened list
        System.out.println(flatList);
    }
}
输出:
[G, e, e, k, s, F, o, r, G, e, e, k, s]