第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

java中iterator的Next()遍歷完之后怎么回到起點

java中iterator的Next()遍歷完之后怎么回到起點

慕容3067478 2019-02-20 14:13:14
java中iterator的Next()遍歷完之后怎么回到起點
查看完整描述

2 回答

?
慕神8447489

TA貢獻1780條經(jīng)驗 獲得超1個贊

重新得到一個新的 Iterator 對象(還是調(diào)用 coll.iterator())。所謂遍歷嘛,你已經(jīng)“遍”過,下次再“遍”當然要重新開始了。

如果你的集合中都沒東西,你當然就沒有“遍”的必要,當然是我們往集合中添加了東西我們才要遍歷一下看一下其中的東西嘛。不過有一點,在迭代的過程中不能直接修改集合。比如:
for(Iterator iter = list.iterator(); iter.hasNext(); ) {
list.add("afewfe"); // 這個操作是非法的,它導(dǎo)致 iter 內(nèi)緩存的位置索引失效,結(jié)果不可預(yù)料。
}

Java 中的迭代器是指你想對集合中的每一個元素做個操作,這個時候就不能再在不通知迭代器的情況下直接改這個集合了,通常我們?yōu)榱舜_保迭代器在迭代過程中的位置索引是有一致的,我們支持的修改操作很有限,比如:
for(Iterator iter = list.iterator(); iter.hasNext(); ) {
Object current = iter.next();
// 如果是我們想找的,刪除它。
if ( current == aaa) {
iter.remove(); // 刪除當前的。這個時候迭代器知道我們修改了集合,而且我們只能刪除當前位置的東西,這個迭代器內(nèi)部的位置索引就沒有問題,如果我們刪除任意位置的元素,那么迭代器當前保持的位置索引就沒有意義,因此不能直接 add 或 remove 任意位置,只能通過迭代器來刪除當前位置的。
}
}

for(ListIterator iter = list.listIterator(); iter.hasNext(); ) {
// 這個 ListIterator 比 Iterator 多些方法可用,因為 List 與其它集合相對它是有序的。
}


 


查看完整回答
反對 回復(fù) 2019-03-02
?
陪伴而非守候

TA貢獻1757條經(jīng)驗 獲得超8個贊

關(guān)于iterator的Next()遍歷完之后怎么回到起點,你可以重新it=coll.iterator(),就可以回到起點。
最后的問題,一般不會出錯,這個順序沒有關(guān)系的。

查看完整回答
反對 回復(fù) 2019-03-02
  • 2 回答
  • 0 關(guān)注
  • 1014 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動學(xué)習伙伴

公眾號

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號