1. 程式人生 > >Java中 for和foreach迴圈的區別

Java中 for和foreach迴圈的區別

foreach語句是java5中新增,在遍歷陣列、集合的時候效能比一般for迴圈能好一些。
foreach是for語句的簡化,foreach是for的充分不必要條件。任何foreach都能改寫為for迴圈,但是反之則行不通。但是foreach並不能替代for迴圈。
例如這樣的for迴圈,就不能用foreach替代

for (int i = 0; i < 8; i++) {
            System.out.println(i);
        }

foreach的迴圈物件一般是一個集合,List、ArrayList、LinkedList、陣列等。

  • foreach雖然能遍歷陣列或者集合,但是隻能用來遍歷,因為其省略了下標(index)所以無法在遍歷的過程中對陣列或者集合進行修改
  • 而for迴圈可以在遍歷的過程中對原來陣列或者集合中的某個元素進行修改。

至於兩者的語法格式,這裡就說說foreach的吧,因為for覺得沒必要,接觸過幾天的人估計都知道,

for(型別 名稱 : 資料來源){
       
    }
    這裡的名稱 我們可以自己隨便定義
舉例:

String[] languages = { "java", "c", "c++", "python" };
        for (String language : languages) {
            System.out.println(language);
        }

結果

java
c
c++
python

//普通的for迴圈 可以對其元素修改賦值
for (int i = 0; i < languages.length; i++) {
            languages[i%2] = "long啊";
            System.out.println(languages[i]);
        }

結果:

long啊
long啊
c++
python