如何将List <long>转换为Map <long,long =“”>

时间:2017-10-26 11:39:31

标签: java java-8

我有以下代码,并希望使用java 8将Long列表转换为Map<Long,Long>

Long globalVal= 10;
List<Long> queryLongs = Arrays.asList(600L,700L,800L);
Map<Long, Long> map = queryLongs.stream().collect(Collectors.toMap(i->i, globalVal)));

当我尝试将列表中的单个值映射为地图的键时,出现错误。

2 个答案:

答案 0 :(得分:8)

toMap的第二个参数也是Function,因此您无法通过globalVal

Map<Long, Long> map = queryLongs.stream()
                                .collect(Collectors.toMap(Function.identity(), 
                                                          i->globalVal));

答案 1 :(得分:1)

这是一种不使用流的方法(尽管仍使用Java 8功能):

Map<Long, Long> map = new HashMap<>();
queryLongs.forEach(i -> map.put(i, globalVal));