一、传统for循环:精准控制的迭代引擎
// 基础结构:初始化;条件;迭代
int[] numbers = {10, 20, 30, 40};
for (int i = 0; i < numbers.length; i++) {
System.out.print(numbers[i] + " "); // 输出:10 20 30 40
}
- 三部分机制:初始化计数器 → 检查条件 → 执行迭代
- 明确循环次数的场景首选(如数组遍历)
二、增强for循环:简洁安全的集合遍历
List<String> fruits = Arrays.asList("Apple", "Banana", "Cherry");
for (String fruit : fruits) { // 无需显式索引
System.out.println(fruit);
}
- 专为集合/数组设计:自动处理迭代器与边界
- 禁止修改集合结构:并发修改会抛出
ConcurrentModificationException
三、对比其他循环结构
|
循环类型 |
适用场景 |
特点 |
|
|
已知迭代次数 |
计数器精准控制 |
|
|
条件优先时(如读取文件) |
可能零次执行 |
|
|
至少执行一次(如菜单交互) |
后验条件 |
四、性能优化关键技巧
- 减少条件计算:将
array.length移出循环条件
for (int i = 0, len = array.length; i < len; i++) // 避免重复计算长度
- 循环展开(Loop Unrolling):减少迭代次数
for (int i = 0; i < 100; i+=5) { // 每次处理5个元素
process(i); process(i+1); //...
}
- 避免方法调用:如将
list.size()存入局部变量
嵌套循环警示:O(n²)复杂度场景需谨慎,大数据集优先考虑分治或流处理。
结语
for循环凭借代码紧凑性与执行效率,成为Java迭代的核心工具。掌握标准/增强型for的适用边界及优化策略,可显著提升程序性能。在复杂数据处理中,结合Stream API的声明式编程,能构建更高效的迭代解决方案。
2378

被折叠的 条评论
为什么被折叠?



