我有以下代码,并希望使用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)));
当我尝试将列表中的单个值映射为地图的键时,出现错误。
答案 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));