小编典典

Java 8清单 进入地图>

java

我有一个清单

List<MyObject> list;

我想将其转换为 Map<MyObject, List<String>>

我试过了

Map<MyObject, List<String>> map = list
    .stream()
    .collect(Collectors.toMap(item -> item, Collections.emptyList()));

但是Java对以下内容不满意item->item

no instance(s) of type variable(s) T exists so that List<T> conforms to Function<? super T, ? extends U>

感谢帮助


阅读 276

收藏
2020-11-30

共1个答案

小编典典

的第二个参数Collectors.toMap期望a
Function将项目转换为将被放置在地图中的值。但是,您提供了Collections.emptyList(),而不是Function

看起来您想为每个项目都添加一个空列表,因此请更改

Collections.emptyList()

item -> Collections.emptyList()

但是,Collections.emptyList()返回一个
不可变的 空列表,这可能不是您想要的。

返回一个空列表(不可变)。该列表是可序列化的。

你可能想要

item -> new ArrayList<>()
2020-11-30