【发布时间】:2019-07-02 15:21:53
【问题描述】:
我正在尝试将列表转换为地图。如果键存在,我只想组合两个值并用“,”分隔它们并将其分配给键。如果键不存在,我只想直接分配为键值对,我想为此目的使用流。
例子:
List<Object> listObject = {something1,something2,something3}
Map<String,String> listToMap = listObject.stream().collect(Collectors.toMap(listObject::getKey,listObject::getValue))
如果有任何重复的键,以上将出错。任何建议在这里都有帮助。
【问题讨论】:
-
你需要传递一个合并函数来处理重复键
-
@Eran 任何例子都会有所帮助
-
谢谢。它按预期工作
-
listObject是List,而List没有getKey()也没有getValue()方法,所以listObject::getKey和listObject::getValue将失败编译。代码 sn-p 是一个不好的例子。
标签: java list java-8 hashmap java-stream