for迴圈和迭代器 Iterator對比

2022-09-23 10:33:07 字數 671 閱讀 1859

for each 以用來處理集合中的每個元素而不用考慮集合定下標。就是為了讓用 iterator 簡單。但是刪除的時候,區別就是在 remove,迴圈中呼叫集合remove會導致原集合變化導致錯誤,而應該用迭代器的 remove 方法。

for 迴圈和迭代器 iterator對比:

①採用 arraylist 對隨機訪問比較快,而for迴圈中的get(),採用的即是隨機訪問的方法,因此在 arraylist 裡,for迴圈較快

②採用 linkedlist 則是順序訪問比較快,iterator 中的 next(),採用的即是順序訪問的方法,因此在 linkedlist 裡,使用 iterator 較快。

③從資料結構角度分析,for迴圈適合訪問順序結構,可以根據下標快速獲取指定元素。而 iterator 適合訪問鏈式結構,因為迭代器是通過next()和pre()來定位的,可以訪問沒有順序的集合。

④使用 iterator 的好處在於可以用相同方式去遍歷集合中元素,而無需考慮集合類的內部實現(只要它實現了 j**a.lang.iterable 介面)。如果使用 iterator 來遍歷集合中元素,一旦不再使用 list 轉而使用 set 來組織資料,那遍歷元素的**不用做任何修改;如果使用 for 來遍歷,那所有遍歷此集合的演算法都得做相應調整。因為list有序,set無序,結構不同,它們的訪問演算法也不一樣。(由此也說明遍歷和集合本身分離了)

python高階特性5 迭代器 Iterator

python五個高階特性 切片 迭代列表生成式 生成器迭代器 我們已經知道,可以直接作用於for迴圈的資料型別有以下幾種 一類是集合資料型別,如list tuple dict set str等 一類是generator,包括生成器和帶yield的generator function。這些可以直接作用...

迭代器和for迴圈機制

什麼是遞迴,之前舉過乙個問路的例子,a問b,b問c,c問d 最後乙個乙個的返回結果,這叫遞迴 什麼是迭代,每次結果都是依賴於上一次結果為迭代,問路例子,a問b,b讓a去問c,a去問c,c讓a去問d,就是這樣 2 可迭代物件,實現了迭代器協議的物件 如何實現 物件內部定義乙個 iter 方法 3 協議...

迭代器和 for of 迴圈

1.for迴圈 支援break continue return等 for var index 0 index myarray.length index 2 foreach 不支援break continue return false相當於continue myarray.foreach functi...