如何使用Java streams统计整数列表中指定数字的出现次数
Java Streams统计列表指定整数出现次数实现方案
针对你给出的示例列表,统计数字6的出现次数的核心实现代码如下:
long occurrenceCount = newList.stream() .filter(num -> num.equals(6)) .count(); // 最终occurrenceCount的值为3,符合预期
注意:这里使用
equals做数值比较是为了兼容超出Integer缓存范围(-128~127)的数值场景,避免使用==比较对象地址导致的统计错误。
实现逻辑拆解
- 调用集合的
stream()方法得到元素流对象 - 通过
filter()中间操作,只保留和目标值匹配的元素 - 调用
count()终端操作,返回匹配元素的总个数
通用封装方法
如果需要复用统计逻辑,可以封装为通用工具方法,支持任意引用类型列表的元素次数统计:
public static <T> long countTargetOccurrences(List<T> inputList, T target) { return inputList.stream() // 过滤掉null元素避免空指针,不需要可删除该行 .filter(Objects::nonNull) .filter(target::equals) .count(); }
如果是统计基本类型数组(比如int[])中的目标值出现次数,可以直接使用IntStream实现,逻辑一致:
int[] arr = {3,6,6,6,4,9,0}; long count = Arrays.stream(arr).filter(num -> num == 6).count();
内容的提问来源于stack exchange,提问作者classicmusiclover
相关产品推荐
相关产品推荐

