集合的迭代操作 :
把集合中的元素一個(gè)一個(gè)遍歷取出來
迭代器對(duì)象 :
Iterator : 迭代器對(duì)象,只能從上往下迭代.
boolean hasNext() : 判斷當(dāng)前指針后是否有下一個(gè)元素.
object next() : 獲取指針的下一個(gè)元素并且移動(dòng)指針.
ListIterator : 是Iterator接口的子接口,支持雙向迭代.
Enumeration : 古老的迭代器(適用于古老的Vector類).

迭代
-
方式一 : for循環(huán)for循環(huán)
-
方式二 : for each增強(qiáng)for循環(huán)for each增強(qiáng)
-
方式三 : 用while循環(huán)操作迭代器Iteratorwhile+迭代器
-
方式四(實(shí)用) : 用while循環(huán)操作迭代器for+迭代器
深入分析for-each和迭代器 :
1. for-each可以操作數(shù)組 : 底層依然采用for循環(huán)+索引來獲取數(shù)組元素.
2. for-each可以操作Iterable實(shí)例:底層采用的是Iterator(迭代器).
所以,直接用for-each來迭代數(shù)組和集合元素即可,簡單.
for-each的語法格式:
for(類型 變量 : 數(shù)組名/Iterable實(shí)例){
//TODO
}

for-each操作數(shù)組

for-each操作集合
注意有例外↓
當(dāng)需要變迭代集合元素,邊刪除指定元素時(shí),使用for-each會(huì)發(fā)生異常.只能使用迭代器對(duì)象的remove方法..
編譯后會(huì)出現(xiàn)如下異常:
并發(fā)修改異常
如何解決異常?
不要使用結(jié)合對(duì)象的刪除方法(boolean remove(Object ele)).
要使用Iterator中的remove方法.
該方法會(huì)從兩個(gè)線程中同時(shí)移除此元素,保證了兩個(gè)線程的同步.

此時(shí)只能使用迭代器對(duì)象調(diào)用



