Java遍历数组主要有增强for循环(简洁)、传统for循环(需索引)和Stream API(复杂逻辑或流式操作);另有迭代器、递归、并行遍历等按需选用的补充方式。

Java中遍历数组有多种方式,核心在于根据场景选择合适的方法:注重简洁用增强for循环,需要索引用传统for循环,处理复杂逻辑或流式操作可考虑Stream API。
传统for循环(适合需要下标的操作)
这是最基础、最灵活的方式,适用于必须访问数组索引的场景,比如修改元素、比较相邻元素、实现排序等。
- 语法结构清晰,兼容所有Java版本
- 通过red">arr.length获取长度,避免越界
- 示例:
int[] nums = {1, 2, 3};
for (int i = 0; i System.out.println("索引 " + i + ": " + nums[i]);
}
增强for循环(推荐用于只读遍历)
语法简洁,代码可读性强,内部仍基于索引实现,但隐藏了下标细节,不能直接获取当前索引,也不支持在遍历时修改原数组内容(仅能修改引用类型对象的属性)。
- 适用于单纯访问每个元素的场景
- 对基本类型数组和对象数组都适用
- 示例:
String[] names = {"Alice", "Bob", "Charlie"};
for (String name : names) {
System.out.println(name);
}
使用Arrays.stream()(适合函数式处理)
从Java 8开始支持,将数组转为Stream,便于链式调用filter、map、reduce等操作,适合数据转换、聚合或条件筛选。
立即学习“Java免费学习笔记(深入)”;
- 需注意基本类型数组(如int[])会自动装箱为Integer[],可能影响性能
- 若需保持基本类型,可用IntStream等专用流(如Arrays.stream(nums)对int[]返回IntStream)
- 示例:
int[] nums = {1, 2, 3, 4, 5};
Arrays.stream(nums)
.filter(n -> n % 2 == 0)
.forEach(System.out::println); // 输出2、4
其他方式(按需选用)
除主流方式外,还有少数实用补充:
- 迭代器方式:仅适用于包装后的集合(如Arrays.asList(arr).iterator()),不建议用于原始数组本身
- 递归遍历:多用于教学演示或特殊结构(如多维数组深层展开),实际开发中较少使用
- 并行遍历:对超大数组且操作耗时,可考虑Arrays.stream(arr).parallel(),但要注意线程安全与副作用










