首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >列出不同的元素,包括Java Streams的计数

列出不同的元素,包括Java Streams的计数
EN

Stack Overflow用户
提问于 2018-08-16 00:00:14
回答 2查看 1.6K关注 0票数 3

我想知道是否可以使用单个Java Steam语句打印出集合中的唯一元素,并包括每个元素的计数。

例如,如果我有:

代码语言:javascript
复制
List<String> animals = Arrays.asList("dog", "cat", "pony", "pony", "pony", "dog");

我想要打印流:

代码语言:javascript
复制
cat - 1
dog - 2
pony - 3
EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2018-08-16 00:03:38

你可以这样做,

代码语言:javascript
复制
Map<String, Long> result = animals.stream()
    .collect(Collectors.groupingBy(Function.identity(), Collectors.counting()));

使用Collectors.groupingBy对具有相同键的元素进行分组。然后,对每个组应用counting下游收集器以获取计数。

票数 6
EN

Stack Overflow用户

发布于 2018-08-16 00:03:50

您可以组合分组和计数收集器:

代码语言:javascript
复制
Map<String, Long> countMap = Arrays.asList("dog", "cat", "pony", "pony", "pony", "dog")
    .stream()
    .collect(Collectors.groupingBy(Function.identity(), Collectors.counting()))

结果就是这张图:

代码语言:javascript
复制
{cat=1, dog=2, pony=3}
票数 5
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/51862238

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档