java数组遍历需据需求选方式:普通for适合需索引、修改或倒序;增强for简洁安全但无法改原数组;arrays工具类支持批量操作;stream api适用于java 8+的函数式复杂处理。

Java 数组遍历不只是一种写法选择,而是根据具体需求匹配合适方式的过程。核心在于:是否需要索引、是否修改元素、是否做复杂计算,以及 Java 版本支持情况。
普通 for 循环:控制索引最直接
当你需要知道当前元素位置、正向或反向遍历、边遍历边修改数组内容时,普通 for 循环不可替代。
- 索引从 0 开始,上限为 array.length - 1,越界会抛出 ArrayIndexOutOfBoundsException
- 倒序遍历写法:for (int i = arr.length - 1; i >= 0; i--) { ... }
- 适合二维数组:用两层 for,内层用 arr[i].length 防止不规则数组越界
增强 for 循环(for-each):简洁安全读取
语法干净,避免索引管理错误,但无法获取下标,也不能通过循环变量修改原数组元素。
- 写法:for (int x : arr) { System.out.println(x); }
- 注意:x 是元素副本,对 x 赋值(如 x = 0)不会改变 arr 中对应位置的值
- 适用于 String[]、int[]、自定义对象数组等所有类型
Arrays 工具类:批量操作一步到位
java.util.Arrays 提供大量静态方法,让常见操作无需手写循环。
- Arrays.toString(arr):打印一维数组内容,避免输出哈希地址
- Arrays.fill(arr, 99):把整个数组设为指定值
- Arrays.sort(arr):升序排序(基本类型用快速排序,对象需实现 Comparable)
- Arrays.equals(a, b):逐个比较两个数组内容是否完全一致
Stream API(Java 8+):函数式处理复杂逻辑
当你要过滤、映射、聚合或并行处理时,Stream 比传统循环更清晰、更易维护。
- 基础遍历:Arrays.stream(arr).forEach(System.out::println)
- 求偶数和:Arrays.stream(arr).filter(n -> n % 2 == 0).sum()
- 转成 List:Arrays.stream(arr).boxed().collect(Collectors.toList())
- 注意:原始类型数组(如 int[])需用 Arrays.stream(),而非 Stream.of(),否则会把整个数组当作一个元素
Java免费学习笔记:立即使用
解锁 Java 大师之旅:从入门到精通的终极指南











