java-8 - Java 8 流转换和列表

标签 java-8 java-stream

我有一个 :

Map<String,List<String>> persons

和每个 String List<String> 中的元素代表一个 Long
所以我想转我的Map<String,List<String>>Map<String,List<Long>>
问题是我的 List 被封装成一张 map 。我知道有一个列表,我可以做到:
list.stream().map(s -> Long.valueOf(s)).collect(Collectors.toList());

但我的情况有点不同。知道如何进行吗?

谢谢

最佳答案

你可以使用这个收集:

list.stream().map(s -> Long.valueOf(s)).collect(Collectors.toList());

valueMapper toMap() 的参数应用于 map 流。

这会给:
import static java.util.stream.Collectors.toList;
import static java.util.stream.Collectors.toMap;

Map<String,List<String>> persons = ...;
Map<String,List<Long>> personsMapped = 
persons.entrySet()
       .stream()
       .collect(toMap(Entry::getKey, e -> e.getValue().stream()
                                                      .map(Long::valueOf)
                                                      .collect(toList()))
               );

关于java-8 - Java 8 流转换和列表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53069252/

相关文章:

Java 流 : combine elements in a map

java - 为什么Stream <T> collect方法返回不同的键顺序?

java - 如何使用 Streams 总结列表中具有特定 ID 的对象的属性值并将其分配给另一个对象

java - 有没有办法将 "expand"对象列表转换为带有流 API 的更大列表?

Java流操作融合和有状态中间操作

java - 是否有可能在 Java 8 中创建一个无限增长的惰性集合,由递归定义?

Java从列表中删除某些属性重复的条目

java - android studio 中的 Android URLConnection.setRequestProperty() 似乎没有做任何事情

java-8 - Java8 计算 map 中对象列表的平均值

java - 如何在 Java8 流中管理附带效果