一、for-each循環概述
for-each循環是Java SE5及以上版本中新增的一種for循環語句,也被稱為增強型for循環或者foreach循環。
for-each循環通過簡化代碼結構,使得數組、集合等集合類容易被遍歷。
for(元素類型 元素變數名: 遍歷對象){
循環體代碼
}
其中,元素類型是要遍歷的對象的數據類型;元素變數名是遍歷過程中元素的引用,不需要在循環之前聲明;遍歷對象可以是數組、集合等實現了Iterable介面的集合類。
二、遍曆數組
for-each循環可以方便地遍曆數組中的所有元素,代碼如下:
public class ForEachDemo{ public static void main(String[] args){ int[] numArray = {1, 2, 3, 4, 5}; for (int num : numArray){ System.out.println(num); } } }
運行結果如下:
1 2 3 4 5
該例中,對數組numArray進行遍歷操作,將每個元素不斷賦值給循環中的變數num,再輸出變數num中的值。
三、遍歷集合
for-each循環同樣可以遍歷集合類,如List、Set等,代碼如下:
import java.util.ArrayList; import java.util.List; public class ForEachDemo{ public static void main(String[] args){ List<String> list = new ArrayList<>(); list.add("apple"); list.add("banana"); list.add("orange"); for (String str : list){ System.out.println(str); } } }
運行結果如下:
apple banana orange
該例中,對List集合進行遍歷操作,將每個元素不斷賦值給循環中的變數str,再輸出變數str中的值。
四、遍歷二維數組
for-each循環同樣可以遍歷二維數組,代碼如下:
public class ForEachDemo{ public static void main(String[] args){ int[][] matrix = {{1, 2, 3}, {4, 5, 6}, {7, 8, 9}}; for (int[] row : matrix){ for (int num : row){ System.out.print(num + " "); } System.out.println(); } } }
運行結果如下:
1 2 3 4 5 6 7 8 9
該例中,遍歷二維數組matrix,將每個一維數組賦值給循環中的變數row,並再通過for-each循環遍歷輸出該一維數組中的值num。
五、for-each循環的注意事項
1. for-each循環不支持在遍歷過程中修改遍歷對象中的元素。
例如,下面的示例中,不能用for-each循環遍歷列表中的元素,並通過刪除列表中的元素來改變列表的大小。
List<String> list = new ArrayList<>(); for (String str : list){ list.remove(str); }
2. for-each循環要求遍歷對象必須實現了Iterable介面,且Iterable介面中定義了iterator()方法,否則編譯時會出錯。
3. 對於遍歷過程中未使用的元素,可以使用下劃線代替,如下所示:
int[] numArray = {1, 2, 3}; for (int _ : numArray){ System.out.println("Hello"); }
運行結果如下:
Hello Hello Hello
六、總結
for-each循環是一種簡潔、易用的遍歷語句,可以遍曆數組、集合等Iterable實現類對象。在編寫Java代碼時,使用for-each循環可使代碼更加簡潔、清晰。
原創文章,作者:小藍,如若轉載,請註明出處:https://www.506064.com/zh-tw/n/189455.html