首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> Java 程式設計 >> Java 相關知識

Java foreach 迴圈完整指南:語法、範例與限制詳解

     編輯:Java 相關知識

Java foreach 迴圈(增強型 for 迴圈)介紹

Java 5 引入的 foreach 迴圈(正式名稱為增強型 for 迴圈),提供了更簡潔、可讀性更高的方式來遍歷集合與陣列。它隱藏了迭代器的複雜細節,讓開發者能專注於業務邏輯。

基本語法

for (元素類型 變數名 : 陣列或集合) {
    // 處理變數名代表的當前元素
}

其中冒號 : 可讀作「in」,即「對集合中的每一個元素執行迴圈體」。

完整程式碼範例

以下示範如何分別遍歷 Collection 與陣列:

package com.example.foreach;

import java.util.*;

public class ForeachDemo {
    private Collection<String> names = new ArrayList<>();
    private String[] beauties = new String[4];

    public ForeachDemo() {
        beauties[0] = "西施";
        beauties[1] = "王昭君";
        beauties[2] = "貂蟬";
        beauties[3] = "楊貴妃";
        names = Arrays.asList(beauties);
    }

    public void iterateCollection() {
        for (String name : names) {
            System.out.println("傾國傾城:" + name);
        }
    }

    public void iterateArray() {
        for (String name : beauties) {
            System.out.println("青史留名:" + name);
        }
    }

    public static void main(String[] args) {
        ForeachDemo demo = new ForeachDemo();
        demo.iterateCollection();
        demo.iterateArray();
    }
}

與傳統寫法對比

陣列遍歷

傳統 for 迴圈:

for (int i = 0; i < beauties.length; i++) {
    String name = beauties[i];
    System.out.println("傾國傾城:" + name);
}

foreach 簡化版:

for (String name : beauties) {
    System.out.println("青史留名:" + name);
}

集合遍歷

使用 Iterator:

for (Iterator<String> it = names.iterator(); it.hasNext(); ) {
    String name = it.next();
    System.out.println("傾國傾城:" + name);
}

foreach 簡化版:

for (String name : names) {
    System.out.println("傾國傾城:" + name);
}

foreach 的限制與注意事項

  • 無法移除元素: 傳統 Iterator.remove() 可在遍歷時安全刪除,foreach 做不到。
  • 無法替換元素: 只能讀取,不能修改集合/陣列本身的元素參考。
  • 無法並行遍歷多個集合: 若需同時遍歷兩個集合,仍需使用索引或迭代器。
  • 不適用於需索引的場景: 如需索引值,請改用傳統 for 迴圈。

因此,開發時應根據具體場景選擇:單純遍歷讀取用 foreach,需修改結構或需索引時用傳統寫法。

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