Iterator迭代器到底是什么?(下)

Iterator迭代器到底是什么?(下)


主要判断集合的修改次数是否合法,即判断遍历过程中集合是否被修改过。modCount 用于记录 ArrayList 集合的修改次数,初始化为 0。每当集合被修改一次(结构上面的修改,内部update不算),如 add、remove 等方法,modCount + 1。所以若 modCount 不变,则表示集合内容未被修改。该机制主要用于实现 ArrayList 集合的快速失败机制。所以要保证在遍历过程中不出错误,我们就应该保证在遍历过程中不会对集合产生结构上的修改(当然 remove 方法除外),出现了异常错误,我们就应该认真检查程序是否出错而不是 catch 后不做处理。  


Iterator迭代器到底是什么?(下)


remove()


Iterator迭代器到底是什么?(下)


调用 ArrayList 本身的 remove() 方法删除 lastRet 位置元素,然后修改 modCount 即可。 


Iterator迭代器到底是什么?(下)    


SubList.this#remove(lastRet) 

Iterator迭代器到底是什么?(下)


ArrayList#remove 


Iterator迭代器到底是什么?(下)

上一篇:Java刷题知识点之什么是迭代器


下一篇:颜色选择器学习