定義
- 它提供一種方法訪問容器對象中各個(gè)元素,而又不需要暴露容器對象內(nèi)部細(xì)節(jié)
應(yīng)用場景
- 訪問集合對象而無需暴露內(nèi)部實(shí)現(xiàn)時(shí)
- 為遍歷不同集合對象提供統(tǒng)一訪問接口時(shí),比如jdk中基本所有集合都已經(jīng)實(shí)現(xiàn)了迭代器,像平時(shí)訪問這些集合對象使用for(E x:xList)就是使用的迭代器
類圖

迭代器模式.png
優(yōu)缺點(diǎn)
- 優(yōu)點(diǎn)
- 為不同集合對象提供一致的遍歷接口,方便訪問
- 集合與訪問元素解耦,迭代的變更,不會(huì)影響到集合
- 缺點(diǎn)
- 對于簡單的集合,比如數(shù)組、有序列表等迭代器反而使之變得復(fù)雜,想想一個(gè)for(int i=0....)能搞定的事,多出了兩個(gè)類。我們應(yīng)盡量少寫自己的迭代器,現(xiàn)在的集合迭代已基本能滿足我們的需求