我有此代码:
List<String> list = Arrays.asList("a", "b", "c", "a", "c");
Map<String, List<String>> map = list.stream().collect(Collectors.groupingBy(
Function.identity() ,
Collectors.toCollection(ArrayList::new)
));
它产生的是
{a=[a, a], b=[b], c=[c, c]}
请问我该如何编写映射方法以获得一个可以给我的地图:
{a=2, b=1, c=2}
答案 0 :(得分:3)
使用Collectors.counting
list.stream().collect(Collectors.groupingBy(
Function.identity(), Collectors.counting()));
以上内容将为您提供Map<String, Long>