在Java中,数组遍历是指依次访问数组中的每一个元素并进行相应处理的过程,不同的遍历方式有着不同的语法特点和适用场景,开发者可以根据实际需求选择最合适的实现方案。

常见数组遍历方式介绍
1. 传统for循环遍历
传统for循环是最基础的数组遍历方式,通过索引来访问数组元素,支持在遍历过程中修改数组元素,也可以灵活控制遍历的起始和结束位置。
public class ArrayTraverseDemo {
public static void main(String[] args) {
int[] arr = {1, 2, 3, 4, 5};
// 传统for循环遍历数组
for (int i = 0; i < arr.length; i++) {
System.out.println("索引" + i + "对应的元素为:" + arr[i]);
// 可以在遍历过程中修改数组元素
arr[i] = arr[i] * 2;
}
System.out.println("修改后的数组第一个元素:" + arr[0]);
}
}
2. 增强for循环(foreach)遍历
增强for循环是Java 5引入的语法糖,无需手动维护索引,代码更简洁,但是无法在遍历过程中修改数组元素,也不能获取当前元素的索引。
public class ArrayTraverseDemo {
public static void main(String[] args) {
String[] strArr = {"Java", "Python", "C++", "Go"};
// 增强for循环遍历数组
for (String str : strArr) {
System.out.println("当前遍历到的字符串:" + str);
}
}
}
3. 迭代器遍历(针对包装类型数组)
对于包装类型数组,可以先将其转换为List集合,再通过迭代器进行遍历,这种方式适合需要边遍历边删除元素的场景,但是操作相对繁琐。
import java.util.Arrays;
import java.util.Iterator;
import java.util.List;
public class ArrayTraverseDemo {
public static void main(String[] args) {
Integer[] intArr = {10, 20, 30, 40, 50};
// 将数组转换为List集合
List<Integer> list = Arrays.asList(intArr);
// 获取迭代器遍历
Iterator<Integer> iterator = list.iterator();
while (iterator.hasNext()) {
Integer num = iterator.next();
System.out.println("迭代器遍历到的元素:" + num);
}
}
}
4. Stream API遍历(Java 8及以上)
Java 8引入的Stream API提供了函数式的遍历方式,支持链式调用,适合需要对数组元素进行过滤、映射等复杂操作的场景,代码可读性强。
import java.util.Arrays;
public class ArrayTraverseDemo {
public static void main(String[] args) {
double[] doubleArr = {1.1, 2.2, 3.3, 4.4};
// Stream API遍历数组,过滤出大于2的元素并打印
Arrays.stream(doubleArr)
.filter(num -> num > 2)
.forEach(num -> System.out.println("过滤后的元素:" + num));
}
}
不同遍历方式对比
以下是几种常见数组遍历方式的多维度对比:
| 遍历方式 | 是否支持修改元素 | 是否支持获取索引 | 代码简洁度 | 适用场景 |
|---|---|---|---|---|
| 传统for循环 | 是 | 是 | 一般 | 需要修改元素、控制遍历范围、获取索引的场景 |
| 增强for循环 | 否 | 否 | 高 | 仅需要读取元素、无需索引的简单遍历场景 |
| 迭代器遍历 | 支持删除(需结合集合) | 否 | 低 | 需要边遍历边删除元素的场景 |
| Stream API遍历 | 否(默认不可修改原数组) | 否 | 高 | 需要对元素进行过滤、映射等复杂操作的场景 |
遍历方式选择建议
如果只需要读取数组元素,不需要修改也不需要索引,优先选择增强for循环,代码更简洁;如果需要在遍历过程中修改数组元素,或者需要控制遍历的起始结束位置,选择传统for循环;如果需要对数组元素进行过滤、转换等复杂操作,优先选择Stream API;如果需要在遍历过程中删除元素,可以考虑将数组转换为集合后用迭代器遍历。开发者可以根据实际业务需求灵活选择最合适的遍历方式,提升代码的效率和可维护性。
Java数组遍历for循环foreachStream_API修改时间:2026-07-09 08:27:10