首页 > 解决方案 > 如何使用 Java 流收集来创建以字符串为键而不是对象的映射?

问题描述

我有以下...

public Map<Object, Integer> getRankings(){
    Stream<String> stream = votes.stream();
    Map<Object, Integer> map = stream
            .collect(Collectors.toMap(s -> s, s -> 1, Integer::sum));
    return Vote.sortByValues(map);
}

但我希望返回类型Map<String, Integer>改为。我如何强制Object到 a String

标签: javajava-stream

解决方案


由于您有Stream<String>,因此可以通过使用以下键类型声明地图来推断String

Map<String, Integer> map =
    stream.collect(Collectors.toMap(s -> s, s -> 1, Integer::sum));

推荐阅读