java - 列出不同的元素,包括 Java Streams 的计数
问题描述
我想知道是否可以使用单个 Java Steam 语句打印出集合中的唯一元素并包括每个元素的计数。
例如,如果我有:
List<String> animals = Arrays.asList("dog", "cat", "pony", "pony", "pony", "dog");
我希望流打印:
cat - 1
dog - 2
pony - 3
解决方案
你可以这样做,
Map<String, Long> result = animals.stream()
.collect(Collectors.groupingBy(Function.identity(), Collectors.counting()));
用于Collectors.groupingBy
对具有相同键的元素进行分组。然后counting
为每个组应用下游收集器以获取计数。
推荐阅读
- git - 如何使用 Azure Pipeline 创建新标签?
- python - Python - 在嵌套字典中查找最大值
- html - div的布局有什么问题?
- docker - Jenkins 管道构建了一个 dockerfile,其中包含我的 dockerhub 存储库的基本映像
- c - 是什么导致了这个 C 内存泄漏?(退出错误 137)
- c - 为什么使用 `mingw32` 链接可以解决 SDL2 的编译问题?
- ssl - TFS 2015 更新 4 请求被中止:无法创建 SSL/TLS 安全通道
- jenkins - 使用 Jenkins 系统变量初始化 @groovy.transform.Field
- vba - MS Access VBA 设置单个记录中单个字段的背景颜色
- java - React 应用程序不向 Java 服务器发送标头