Java 8 将字符串列表的列表转换为映射

ruhewo

我有List<List<String>>我想根据内部列表的特定元素将其转换为 Map。

我试过了

ddList.stream().flatMap(x -> x.stream()
            .collect(Collectors.toMap(Function.identity(), String::length)));

它不工作。这里出了什么问题?

他们是

它应该是:

Map<String, Integer> sMap = 
    ddMap.stream()
         .flatMap(x -> x.stream())
         .collect(Collectors.toMap(Function.identity(),
                                   String::length));

PS如果输入Lists包含任何重复元素,此代码将抛出异常。您可以使用以下方法消除重复项distinct

Map<String, Integer> sMap = 
    ddMap.stream()
         .flatMap(x -> x.stream())
         .distinct()
         .collect(Collectors.toMap(Function.identity(),
                                   String::length));

编辑:

根据您的评论,您根本不需要flatMap,而是这样的:

Map<String, List<String>> sMap = 
    ddMap.stream()
         .collect(Collectors.toMap(l -> l.get(0), // or some other member 
                                                  // of the inner List
                                   Function.identity()));

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

Java 8流-考虑NULL将UUID列表转换为字符串列表

使用Java-8 Streams API将字符串列表转换为Map

地图Java8列表转换为字符串列表

Java 8:将具有字符串值的映射转换为包含其他类型的列表

Lambda Java 8-如何在将字符串列表流式传输到日期列表时进行转换

如何通过java8将列表转换为映射?

将映射字符串字符串转换为映射字符串列表字符串-Java 7

使用Java 8将字符串转换为对象列表

Java 8:使用Stream.of()将逗号分隔的字符串转换为通用列表

收集字符串列表以使用Java 8 Stream API进行映射

JAVA将字符串列表转换为字符串数组

在Java 8中将枚举值获取为字符串列表

Java 8:将2个字符串列表合并到Map中

Java的8 - 类型不匹配:不能从列表<Serializable接口>转换为列表<字符串>

将Java枚举值多态转换为字符串列表

如何在Java中将列表字符串列表转换为列表整数列表

使用Java 8 Streams将模型列表转换为带有内部映射的Map

groupingBy和Java 8-在groupingBy之后将映射转换为对象列表

Java 8:将2个列表转换为Map列表

Java的8流,对象的转换列表地图<字符串,将<字符串>>

如何将列表转换为Java-8流映射,其中Key是ListValue,而Value是该特定列表的值量

如何对象的多个属性转换为列表<字符串>用java 8

使用Java 8将对象列表转换为从toString()方法获得的字符串

Java的8 LAMBDA从对象列表中创建的字符串列表

如何在Java 8中使用reduce从对象列表创建字符串列表?

使用Java 8流分组通过字符串列表的列表?

使用 Java 8 Streams 修改列表中的字符串列表

在 Java 流中,将逗号分隔的字符串列表转换为列表,但删除每个字符串前面的子字符串(如果存在)

转换列表用java映射8