Iterator的remove 方法使用注意事項

2021-08-29 17:36:19 字數 403 閱讀 9777

voidremove()
從迭代器指向的集合中移除迭代器返回的最後乙個元素(可選操作)。

每次呼叫 next 只能呼叫一次此方法,也意味著在呼叫remove()之前必須先呼叫next()

。如果進行迭代時用呼叫此方法之外的其他方式修改了該迭代器所指向的集合,則迭代器的行為是不明確的。

丟擲:

unsupportedoperationexception- 如果迭代器不支援 remove 操作。

illegalstateexception- 如果尚未呼叫 next 方法,或者在上一次呼叫 next 方法之後已經呼叫了 remove 方法。

remove刪除元素

用列表的方法.remove 刪除列表中元素的時候,會改變列表的下標,從而發生出乎意料的錯誤。所以如果想要刪除列表中元素,可以用如下方法 錯誤的方法 a 1,2,3,4,5 b 1,2 for i in a if i in b a.remove i a 2,3,4,5 思考 刪除元素之後index是如...

LinkedList的Iterator的效能分析

linkedlist的iterator 的效能頸瓶 對於iterator 的next每次都會返回乙個linkedlist的內部類return new listitr index 然後呼叫這個內部類的next方法。而listitr index 每次初始化時都時從頭指標開始從新定位的,所以對於海量資料的...

STL中的remove問題

我將從remove的複習開始這個條款,因為remove是stl中最糊塗的演算法。誤解remove很容易,驅散所有關於remove行為的疑慮 為什麼它這麼做,它是怎麼做的 是很重要的。這是remove的宣告 templateforwarditerator remove forwarditerator ...