Java 使用 Lambda 将 Map<String, List<String>> 中的 Value 合并成一个 List
可以使用 flatMap 方法来实现将 Map<String, List<String>> 中的 Value 合并成一个 List 的操作。
具体代码如下:
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
public class Main {
public static void main(String[] args) {
Map<String, List<String>> map = new HashMap<>();
map.put("key1", List.of("value1", "value2", "value3"));
map.put("key2", List.of("value4", "value5"));
List<String> mergedList = map.values().stream()
.flatMap(List::stream)
.toList();
System.out.println(mergedList);
}
}
输出结果为:
[value1, value2, value3, value4, value5]
在这个示例中,我们首先创建了一个包含 String 作为 key,Liststream 方法将 map 的 values 转换为一个流。接下来,我们使用 flatMap 方法将每个 List<String> 转换为一个流,并将所有流合并成一个流。最后,我们使用 toList 方法将流转换为一个 List<String>,即合并后的列表。
注意,需要使用 Java 16 或更高版本才能使用 toList 方法。如果你使用的是更早的 Java 版本,可以使用 collect(Collectors.toList()) 来替代 toList 方法。
原文地址: https://www.cveoy.top/t/topic/pLjd 著作权归作者所有。请勿转载和采集!