如何将List <Long>转换为Map <Long,Long>

Eri*_*ica 4 java java-8

我有以下代码,并希望使用java 8将列表转换LongMap<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)));
Run Code Online (Sandbox Code Playgroud)

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

Era*_*ran 8

第二个论点toMap也是一个Function,所以你不能只是通过globalVal.

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

  • @Erica,只需将它复制到一个临时的`final`变量中,然后在lambda中使用它 (2认同)