增強for迴圈亦為高階for迴圈。
增強for迴圈內部是使用的iterator來遍歷的,只能遍歷陣列和實現了iterable介面的集合。優點是寫法簡便,無需獲得陣列、集合長度,也無需根據索引來訪問元素。缺點是不能在迴圈裡動態的刪除元素和獲取元素下標。
任何的增強for迴圈都可以改寫為普通for迴圈。遍歷集合所有元素的話用增強for迴圈更加簡潔,如果是複雜的迴圈,還是用for迴圈比較好,for迴圈功支援索引取元素,可以使用下標來控制位置。
高階for有乙個侷限性,必須有被遍歷的目標。
建議在遍歷陣列的時候,還是希望使用傳統for,因為傳統for可以定義角標。
凡是支援迭代器的都支援高階for
.而對於 linkedlist 由於獲取乙個元素,要從頭開始向後找,因此建議使用 增強for迴圈,也就是iterator。
下面用乙個例子說明這點:
**一
public static void removeevensver2(listlst)
**二
public static void removeevensver3(listlst)
**一在執行時丟擲異常,**二正常
原因分析:因為增強的for迴圈內部就是呼叫iterator實現的,在遍歷的時候就將list轉化為了迭代器,當迭代器被建立之後,如果從結構上對列表修改除非通過迭代器自身的remove、add方法,其他任何時間任何方式的修改,迭代器都會丟擲concurrentmodificationexception異常。
增強for迴圈和普通for迴圈區別
記錄 成為更好的自己 增強for迴圈與普通for迴圈的區別 1,增強for迴圈與普通for迴圈的區別 增強for迴圈必須有被遍歷的目標 如集合或陣列 普通for迴圈遍歷陣列的時候需要索引。增強for迴圈不能獲取下標,所以遍歷陣列時最好使用普通for迴圈。2,特點 書寫簡潔。對集合進行遍歷,只能獲取集...
普通for迴圈與增強for迴圈效率對比
開發中經常用到for迴圈,但是到底選擇那乙個效率更高,可能讓有些同學出現糾結,給人感覺好像是增強for迴圈效率高,但是。猜測總是沒法讓人不放心,千猜萬猜還不如,動手做個測試,證明下,測試步驟如下 1 定義乙個物件,data public class car2 用乙個普通for迴圈往list裡增加物件...
增強for迴圈 foreach迴圈
1 作用 簡化迭代器的書寫格式。注意 foreach迴圈的底層還是使用了迭代器遍歷。2 適用範圍 如果是實現了iterable介面的物件或者是陣列物件都可以使用foreach迴圈。3 格式 for 資料型別 變數名 遍歷的目標 示例 1 public static void main string ...