我有一个 :
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/