首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

Java-8 Streams:将List<{String,List<String>}>转换为Map<String,List<String>>

Java 8中的Streams是一种强大的数据处理工具,它提供了一种函数式编程的方式来处理集合数据。在Java 8中,可以使用Streams将List<{String,List<String>}>转换为Map<String,List<String>>。具体实现如下:

代码语言:txt
复制
import java.util.*;
import java.util.stream.Collectors;

public class Main {
    public static void main(String[] args) {
        List<Map<String, List<String>>> list = new ArrayList<>();

        // 创建测试数据
        Map<String, List<String>> map1 = new HashMap<>();
        map1.put("key1", Arrays.asList("value1", "value2", "value3"));
        map1.put("key2", Arrays.asList("value4", "value5"));

        Map<String, List<String>> map2 = new HashMap<>();
        map2.put("key3", Arrays.asList("value6", "value7"));
        map2.put("key4", Arrays.asList("value8"));

        list.add(map1);
        list.add(map2);

        // 将List<{String,List<String>}>转换为Map<String,List<String>>
        Map<String, List<String>> result = list.stream()
                .flatMap(map -> map.entrySet().stream())
                .collect(Collectors.toMap(
                        Map.Entry::getKey,
                        Map.Entry::getValue,
                        (oldValue, newValue) -> {
                            List<String> mergedList = new ArrayList<>(oldValue);
                            mergedList.addAll(newValue);
                            return mergedList;
                        }
                ));

        // 打印结果
        for (Map.Entry<String, List<String>> entry : result.entrySet()) {
            System.out.println(entry.getKey() + ": " + entry.getValue());
        }
    }
}

上述代码将List<{String,List<String>}>中的每个Map对象中的键值对扁平化,然后将它们收集到一个新的Map<String,List<String>>中。如果遇到相同的键,则将对应的值合并为一个List。最后,打印结果如下:

代码语言:txt
复制
key1: [value1, value2, value3]
key2: [value4, value5]
key3: [value6, value7]
key4: [value8]

这样,我们就成功地将List<{String,List<String>}>转换为Map<String,List<String>>了。

对于这个问题,腾讯云并没有特定的产品或服务与之相关联。但是,腾讯云提供了一系列的云计算产品和服务,如云服务器、容器服务、数据库、消息队列等,可供您构建和部署各种类型的应用程序。您可以访问腾讯云官方网站(https://cloud.tencent.com/)了解更多详情。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

在VB.net中,List(of string())与List(of List(of string))有什么区别

在VB.net中,List(of string())与List(of List(of string))有什么区别 (1)List(of string())与List(of List(of string)...)区别 在VB.NET中,List(Of String()) 和 List(Of List(Of String))  是两种不同的数据结构,它们分别表示: 1. ...List(Of String())   - 这个类型表示一个列表,其中的每个元素是一个字符串数组(String array)。这意味着你可以多个字符串数组添加到这个列表中。...例如: Dim listOfListsOfStrings As New List(Of List(Of String)) listOfListsOfStrings.Add(New List(Of String...(2)VSTO外接Excel中,List(of List(of string))如何输出到Excel工作表 在VB.NET的VSTO外接程序中,如果您有一个`List(Of List(Of String

31810
领券