java遍历一维数组条件统计的核心是for循环(推荐增强for)、if判断和变量累加;常见需求包括单条件计数(如大于10的元素个数)、多条件分类统计(负数/零/正数)、求和与平均值计算,以及结合map实现频次统计或set实现去重。

Java 中遍历一维数组并做条件统计与汇总,核心是结合 for 循环(或增强 for)、if 判断、变量累加 三要素。关键不在语法多难,而在于逻辑清晰、边界不漏、类型匹配。
基础遍历 + 条件计数
最常见需求:统计满足某条件的元素个数(比如正数、偶数、大于阈值的数)。
- 用普通 for 或增强 for 都可以,推荐增强 for(代码简洁,不易越界)
- 声明一个 int 计数器,初值为 0;遍历时遇到符合条件的就 ++
- 注意条件表达式写准确,比如判断偶数用
num % 2 == 0,不是% 2 != 0
示例:统计数组中大于 10 的整数个数
int[] arr = {5, 12, 8, 15, 3, 20};int count = 0;
for (int num : arr) {
if (num > 10) count++;
}
// count 最终为 3
多条件分类统计
当需要按多个互斥类别分别计数(如:负数、零、正数),避免嵌套 if,用 else if 更清晰。
- 提前定义多个计数变量,各自独立累加
- 确保条件覆盖全部可能(比如包含 0 的情况别遗漏)
- 若类别有重叠(如“偶数且大于 10”),直接用 && 连接条件即可
示例:分别统计负数、零、正数个数
for (int num : arr) {
if (num else if (num == 0) zero++;
else pos++;
}
数值型汇总计算
求和、平均、最大/最小值等,本质是维护一个或多个状态变量,在循环中持续更新。
- 求和:初始化 sum = 0,每次加当前元素
- 求平均:先求和再除以长度,注意 int 除法会截断,建议转 double 或使用 long 防溢出
- 找最值:初始值设为数组首项(或 Integer.MIN_VALUE/MAX_VALUE),逐个比较更新
示例:计算正数的平均值(需先统计个数再算均值)
int sum = 0, posCount = 0;for (int num : arr) {
if (num > 0) {
sum += num;
posCount++;
}
}
double avg = posCount > 0 ? (double) sum / posCount : 0.0;
结合集合做去重或频次统计
如果要统计每个值出现几次,或只对不重复的值做处理,就得引入 Map 或 Set。
- 用 HashMap
存数字 → 出现次数,遍历时 getOrDefault + 1 - 用 HashSet 存已见数值,可快速判断是否首次遇到(用于去重逻辑)
- 注意 null 安全:原始 int 数组不会含 null,但如果是 Integer[] 就要判空
示例:统计各元素出现频次
Mapfor (int num : arr) {
freq.put(num, freq.getOrDefault(num, 0) + 1);
}
Java免费学习笔记:立即使用
解锁 Java 大师之旅:从入门到精通的终极指南











