How create a new map from the values in an existing map

守給你的承諾、 提交于 2019-12-01 15:29:11

toMap consumes function for it's keyMapper and valueMapper. You're doing this correctly for the valueMapper in your code but not for the keyMapper thus you need to include the keyMapper function as follows:

originalMap.entrySet()
           .stream()
           .collect(toMap(e -> Collections.max(e.getValue()), Map.Entry::getValue));

note the e -> Collections.max(e.getValue()).

Further, since you're not working with the map keys, you can avoid having to call entrySet() and instead work on the map values:

originalMap.values()
           .stream()
           .collect(Collectors.toMap(Collections::max, Function.identity()));
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!