如何使用java stream collect创建以字符串作为键而不是对象的Map?

fykwrbwg  于 2021-06-30  发布在  Java
关注(0)|答案(2)|浏览(379)

我有以下。。。

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> 相反。我该如何强制 ObjectString ?

tpgth1q7

tpgth1q71#

既然你有 Stream<String> ,只需声明键类型为 String :

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

91zkwejq2#

这没有问题:

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

相关问题