Java数组遍历不是算法而是基础操作,常见算法如统计、查找、变换、排序均依赖它;需索引时用标准for循环,增强for适用于无需下标场景,while/do-while适合需动态控制或提前终止的情况。

Java 数组遍历本身不是算法,但它是绝大多数数组相关算法的执行基础。真正“常见”的算法应用,都建立在遍历动作之上,用于完成统计、查找、变换、排序等任务。掌握遍历方式只是第一步,关键在于理解不同场景下该用哪种遍历逻辑,以及如何结合条件判断和变量更新来实现目标。
需要索引的场景:用标准 for 循环
当操作依赖元素位置(比如找最大值下标、交换相邻元素、跳过偶数位)时,必须通过 i 索引访问。增强 for 无法提供下标,此时不可替代。
- 找第一个负数的位置:
if (arr[i] - 两两交换(如反转数组前半部分):
int temp = arr[i]; arr[i] = arr[arr.length - 1 - i]; arr[arr.length - 1 - i] = temp; - 计算偶数索引位置的元素和:
if (i % 2 == 0) sum += arr[i];
只关心元素值的场景:用增强 for 循环
如果只需读取每个值做简单处理(打印、累加、校验合法性),增强 for 更安全简洁,避免越界错误,也更易读。
- 统计正数个数:
for (int x : arr) if (x > 0) count++; - 检查是否全为偶数:
boolean allEven = true; for (int x : arr) { if (x % 2 != 0) { allEven = false; break; } } - 构建新字符串(如拼接非空字符串):
for (String s : strArr) if (s != null && !s.isEmpty()) builder.append(s);
需提前终止或动态控制步长:用 while 或 do-while
标准 for 和增强 for 的迭代节奏固定(每次 +1)。若需根据运行结果决定下一步索引(如跳跃查找)、或确保至少执行一次(即使数组为空),while/do-while 更灵活。
立即学习“Java免费学习笔记(深入)”;
- 查找某个值并返回索引(找到即停):
int i = 0; while (i - 按规则跳着遍历(如只看下标为 3 的倍数的元素):
int i = 0; while (i - do-while 适合“先处理再判断”的逻辑,比如初始化后校验首元素是否满足条件。
调试与输出:别直接打印数组名
System.out.println(arr) 输出的是类似 [I@1b6d3586 的内存地址,毫无意义。实际开发中应使用工具方法快速查看内容:
- 一维数组:
System.out.println(Arrays.toString(arr));→ 输出[1, 4, 9, 16] - 二维数组:
System.out.println(Arrays.deepToString(matrix));→ 输出[[1, 2], [3, 4]] - 自定义格式(如用逗号分隔):
String.join(", ", Arrays.stream(arr).mapToObj(String::valueOf).toArray(String[]::new))


















