数组遍历
| 方式 | 特点 | 选择场景 |
|---|---|---|
| for 循环 | 可获取索引 | 需要使用索引时 |
| for-each | 简洁 | 只取值不需索引 |
| Stream | 函数式、链式 | 过滤、映射等操作 |
普通 for 循环
java
public class ArrayTraversalDemo {
public static void main(String[] args) {
int[] arr = {1, 2, 3, 4, 5};
for (int i = 0; i < arr.length; i++) {
System.out.println("索引 " + i + ": " + arr[i]);
}
}
}for-each 循环
不用索引时更简洁:
java
public class ForEachDemo {
public static void main(String[] args) {
int[] arr = {1, 2, 3, 4, 5};
for (int num : arr) {
System.out.println("值: " + num);
}
}
}Stream 遍历
Java 8+ 可用 Stream API,支持链式操作:
java
import java.util.Arrays;
public class StreamTraversalDemo {
public static void main(String[] args) {
int[] arr = {1, 2, 3, 4, 5};
// forEach
Arrays.stream(arr).forEach(System.out::println);
// 带过滤
System.out.println("偶数:");
Arrays.stream(arr)
.filter(n -> n % 2 == 0)
.forEach(System.out::println);
// 求和
int sum = Arrays.stream(arr).sum();
System.out.println("总和: " + sum);
}
}倒序遍历
java
public class ReverseTraversalDemo {
public static void main(String[] args) {
int[] arr = {1, 2, 3, 4, 5};
for (int i = arr.length - 1; i >= 0; i--) {
System.out.println(arr[i]);
}
}
}多维数组遍历
java
public class MultiDimensionalTraversal {
public static void main(String[] args) {
int[][] matrix = {
{1, 2, 3},
{4, 5, 6}
};
// 双层 for 循环(带索引)
for (int i = 0; i < matrix.length; i++) {
for (int j = 0; j < matrix[i].length; j++) {
System.out.print(matrix[i][j] + " ");
}
System.out.println();
}
// for-each 简化
for (int[] row : matrix) {
for (int num : row) {
System.out.print(num + " ");
}
System.out.println();
}
}
}注意事项
- 需要索引:用普通 for 循环
- 只取值:用 for-each
- 链式操作:用 Stream API
