1、for-each迴圈的缺點:丟掉了索引資訊。
當遍歷集合或陣列時,如果需要訪問集合或陣列的下標,那麼最好使用舊式的方式來實現迴圈或遍歷,而不要使用增強的for迴圈,因為它丟失了下標資訊。
1.首先增強for迴圈和iterator遍歷的效果是一樣的,也就說增強for迴圈的內部也就是呼叫iteratoer實現的,
但是增強for迴圈有些缺點,例如不能在增強迴圈裡動態的刪除集合內容。不能獲取下標等。
2.arraylist由於使用陣列實現,因此下標明確,最好使用普通迴圈。
3.而對於linkedlist 由於獲取乙個元素,要從頭開始向後找,因此建議使用增強for迴圈,也就是iterator。
下面的例子可以證明
按 ctrl+c 複製**
按 ctrl+c 複製**
使用arraylist執行結果如下
把arraylist改為linkedlist,我這裡記憶體溢位了,執行結果如下
於是list改成50000,執行結果如下
所以在使用的時候適當選擇就好了
1.首先增強for迴圈和iterator遍歷的效果是一樣的,也就說增強for迴圈的內部也就是呼叫iteratoer實現的,
但是增強for迴圈有些缺點,例如不能在增強迴圈裡動態的刪除集合內容。不能獲取下標等。
2.arraylist由於使用陣列實現,因此下標明確,最好使用普通迴圈。
3.而對於linkedlist 由於獲取乙個元素,要從頭開始向後找,因此建議使用增強for迴圈,也就是iterator。
下面的例子可以證明
按 ctrl+c 複製**
按 ctrl+c 複製**
使用arraylist執行結果如下
把arraylist改為linkedlist,我這裡記憶體溢位了,執行結果如下
於是list改成50000,執行結果如下
所以在使用的時候適當選擇就好了
增強for迴圈的用法
一 增強for迴圈 增強for迴圈的作用 簡化迭代器的書寫格式。注意 增強for迴圈的底層還是使用了迭代器遍歷。增強for迴圈的適用範圍 如果是實現了iterable介面的物件或者是陣列物件都可以使用增強for迴圈。增強for迴圈的缺點 增強for迴圈和iterator遍歷的效果是一樣的,也就說增強...
增強for迴圈
高階for迴圈 格式 for 資料型別 變數名 被遍歷的集合 collection或陣列 隊集合進行遍歷只能獲取元素,但是不能對集合操作 迭代器除了遍歷,還可以進行remove集合中元素的動作 如果使用listiterator,還可以在遍歷過程中進行增刪改查的動作 chuantong for迴圈和高...
增強for迴圈
增強for迴圈是jdk1.5出現的新特性,作用是簡化迭代器的書寫格式 增強for迴圈的底層還是使用了迭代器遍歷 適用範圍 實現了iterable介面的物件或者是陣列物件都可以使用增強for迴圈。格式 for 資料型別 變數名 被遍歷的集合 collection 或者陣列 for int a arr ...