增强for循环遍历数组简洁高效,语法为for(类型 变量:数组),自动按序取元素;要求数组非null且类型兼容,不可改长度,基本类型修改变量不影响原数组,引用类型可改对象状态但不能改变数组中引用指向。

Java 中用增强 for 循环(也叫 foreach)遍历数组非常简洁,只需关注“当前元素”,不用操心索引和边界。
基本语法:for (元素类型 变量名 : 数组名)
这是固定结构,冒号 : 读作“in”,表示“在……中”。编译器自动按顺序取出每个元素,赋值给左边的变量。
在 Java 中初始化和管理阿里云 SDK客户端。包括单例模式、线程安全、endpoint 与 region 配置、VPC 终端节点、同步与异步等。
- 数组必须已初始化(不能为 null),否则运行时报 NullPointerException
- 变量类型必须与数组元素类型兼容(如 int[] 对应 int,String[] 对应 String)
- 不能在循环中修改数组长度(数组长度不可变),也不能通过该变量修改原数组元素的值(对基本类型无效;对引用类型可修改对象状态,但不能让变量指向新对象)
遍历基本类型数组(如 int[])
变量是元素的副本,修改它不影响原数组:
int[] nums = {10, 20, 30};
for (int n : nums) {
System.out.println(n); // 输出 10、20、30
n = n * 2; // 这行不改变 nums 数组内容
}
遍历引用类型数组(如 String[])
变量保存的是引用的副本,可以调用对象方法,甚至修改对象内部状态(如果对象可变),但不能让变量指向另一个新对象来影响原数组:
String[] names = {"Alice", "Bob"};
for (String s : names) {
System.out.println(s.toUpperCase()); // 输出 "ALICE"、"BOB"
// s = "Charlie"; // 这样赋值只改了局部变量 s,不影响 names 数组
}
注意事项和常见误区
- 无法直接获取当前索引——需要额外定义计数器变量(此时普通 for 更合适)
- 不能在遍历过程中删除或添加数组元素(数组本身不可变,且增强 for 不提供下标)
- 多维数组中,增强 for 只能逐层展开:int[][] matrix 需嵌套两层 for (int[] row : matrix) 和 for (int val : row)
- 适用于所有实现了 Iterable 接口的集合(List、Set 等)和数组,统一了遍历写法
Java免费学习笔记:立即使用
解锁 Java 大师之旅:从入门到精通的终极指南










