本篇文章主要围绕for循环,来讲解循环处理数据中常见的六种方式及其特点,性能。通过本篇文章你可以快速了解循环的概念,以及循环在实际使用过程中的调优方案。
作者:任聪聪
日期:2025年4月11日
一、循环的种类
1.1 默认有以下类型
原始 for 循环
for(i = 0;i<10;i++){......TODO}
特点:固定、操作数据较为复杂、效率较低
增强 for 循环
List<Integer> numArr= Arrays.asList(66,99,88);for (Integer num: numArr) {......TODO}
特点:固定、操作简单、效率稍好
while 循环
List<String> numArr= Arrays.asList("没有bug","工作easy");while (index < numArr.size()) {System.out.println(numArr.get(index));index++;}
特点:固定、简单、适用于不确定执行结束次数的情况
do-while 循环
List<String> numArr= Arrays.asList("没有bug","工作easy");do {if (index < numArr.size()) {System.out.println(numArr.get(index));}index++;} while (index < numArr.size());
特点:条件式的循环、操作简单、执行完毕结束(至少执行一次)
Iterator 循环
List<String> numArr= Arrays.asList("没有bug","工作easy");IteratorString> iterator = numArr.iterator();while (iterator.hasNext()) {System.out.println(iterator.next());}
特点:操作简单、运行效果较好、数据复制和处理较好、手动控制迭代数据较为方便
Stream API 循环
List<String> numArr= Arrays.asList("好运","幸运");numArr.stream().forEach(System.out::println);
特点:代码简洁、操作直接、并发运行、速度更快、适合数据的任意条件、复制、更新、删除等操作。
1.2 自定义递归函数方式
private static void recursivePrint(int current, int limit) {if (current < limit) {System.out.println("递归: " + current);recursivePrint(current + 1, limit); // 递归调用}}
特点:适合处理较为复杂的数据场景,可以无限套娃直到数据被完全处理或满足需求结束。
二、FOR循环平替方案
将如下代码实例,通过idea进行创建一个java 空项目,创建文件内容如下,即可体验和学习for循环平替方案的代码内容。
代码实例:
import java.util.Arrays;
import java.util.HashMap;
import java.util.Iterator;
import java.util.List;
import java.util.Map;
import java.util.stream.Collector