1). Iterator是迭代器類(lèi),而Iterable是為了只要實(shí)現(xiàn)該接口就可以使用foreach,進(jìn)行迭代.
2). Iterable中封裝了Iterator接口,只要實(shí)現(xiàn)了Iterable接口的類(lèi),就可以使用Iterator迭代器了。
3). 集合Collection、List、Set都是Iterable的實(shí)現(xiàn)類(lèi),所以他們及其他們的子類(lèi)都可以使用foreach進(jìn)行迭代。
4). Iterator中和核心的方法next(),hasnext(),remove(),都是依賴(lài)當(dāng)前位置,如果這些集合直接實(shí)現(xiàn)Iterator,則必須包括當(dāng)前迭代位置的指針。當(dāng)集合在方法間進(jìn)行傳遞的時(shí)候,由于當(dāng)前位置不可知,所以next()之后的值,也不可知。而當(dāng)實(shí)現(xiàn)Iterable則不然,每次調(diào)用都返回一個(gè)從頭開(kāi)始的迭代器,各個(gè)迭代器之間互不影響。
以上這篇java集合_淺談Iterable和Iterator的區(qū)別就是小編分享給大家的全部?jī)?nèi)容了,希望能給大家一個(gè)參考,也希望大家多多支持服務(wù)器之家。