Java 8 Java8流转换和列表

Java 8 Java8流转换和列表,java-8,java-stream,Java 8,Java Stream,我有一个: Map<String,List<String>> persons 但我的情况有点不同。你知道怎么做吗 谢谢地图人物=。。。 映射结果=新的HashMap(); persons.forEach((键、值)->{ put(key,value.stream().map(Long::valueOf).collect(Collectors.toList()); }); 您可以使用此集合: list.stream().map(s -> Long.valueOf(s

我有一个:

Map<String,List<String>> persons
但我的情况有点不同。你知道怎么做吗

谢谢

地图人物=。。。
映射结果=新的HashMap();
persons.forEach((键、值)->{
put(key,value.stream().map(Long::valueOf).collect(Collectors.toList());
});

您可以使用此集合:

list.stream().map(s -> Long.valueOf(s)).collect(Collectors.toList());
作为应用于映射流的
toMap()
valueMapper
参数

这将使:

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.util.stream.Collectors.toList;
导入静态java.util.stream.Collectors.toMap;
地图人物=。。。;
映射人员映射=
persons.entrySet()
.stream()
.collect(toMap(Entry::getKey,e->e.getValue().stream())
.map(Long::valueOf)
.collect(toList()))
);
你可以这样做

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

为什么不简单地收集toMap?@nullpointer因为另一个答案已经做到了,我猜哦,那样的话,在比较两个收集器调用和一种类型的比较时,我几乎在想:)我的错..这里不需要语句语法,也就是说,你可以删除大括号和一个分号…
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()))
               );
Map<String, List<Long>> longMap = persons.entrySet().stream()
    .collect(Collectors.toMap(Map.Entry::getKey,
        e -> e.getValue().stream().map(s -> Long.valueOf(s)).collect(Collectors.toList())));