首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> 更多程式語言 >> 程式設計綜合問答

Java 增強 for 循環(for-each)原理與用法詳解

     編輯:程式設計綜合問答

語法形式

for (ElementType variable : iterableObject) {
    // 使用 variable
}

適用對象

  • 數組(int[], String[] 等)
  • 實現 Iterable<E> 接口的集合(List, Set, Queue 等)

底層原理

編譯器將其轉換為迭代器模式:

// 數組版本
for (int i = 0; i < arr.length; i++) {
    ElementType var = arr[i];
    // body
}

// 集合版本
for (Iterator<ElementType> it = coll.iterator(); it.hasNext(); ) {
    ElementType var = it.next();
    // body
}

優缺點對比

優點缺點
語法簡潔,可讀性強無法獲取索引/下標
避免下標越界錯誤不能在遍歷時修改集合結構(增/刪元素)
統一了數組與集合遍歷語法不支持反向遍歷或步長控制

示例:枚舉類遍歷

public enum Weekday { Sun, Mon, Tue, Wed, Thu, Fri, Sat }

Weekday[] days = Weekday.values();
for (Weekday day : days) {
    System.out.println(day); // 依次輸出 Sun, Mon, ...
}

注意事項

  • 循環變量 day 是元素的**副本**(基本類型)或**引用副本**(引用類型),修改它不影響原數組/集合元素。
  • 若需刪除元素,請使用 Iterator.remove() 或反向下標循環。
  • Java 8+ 可考慮 stream().forEach(),函數式風格更靈活。

掌握 for-each 的轉換規則與適用邊界,寫出更優雅、安全的遍歷代碼。

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved