本篇文章主要圍繞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