jdk为什么这样设计,只允许通过iterator进行remove操作?
HashMap和keySet的remove方法都可以通过传递key参数删除任意的元素,而iterator只能删除当前元素(current),一旦删除的元素是iterator对象中next所正在引用的,如果没有通过modCount、 expectedModCount的比较实现快速失败抛出异常,下次循环该元素将成为current指向,此时iterator就遍历了一个已移除的过期数据。
hashmap的remove异常问题
JDK设计之Iterator移除机制
最新推荐文章于 2023-04-24 10:00:00 发布
探讨JDK设计中Iterator移除机制的原因,对比HashMap和keySet的remove方法,解释为何Iterator仅允许移除当前元素,以及如何避免遍历过程中出现过期数据的问题。
710

被折叠的 条评论
为什么被折叠?



