迭代器主要用于遍历集合,体现的就是迭代器模式。使用迭代器遍历元素时不能不能通过Collection接口中的remove方法删除元素,只能用Interator的remove方法删除元素,下面根据案例和源代码分析原因。查看资料知道了,迭代器其实在另外一个线程复制了一个一摸一样的集合进行遍历的。当用集合的remove方法删除元素时,迭代器是不会知道的,所以就会抛出异常。关于从Java中的Map删除元素的非常简短的文章。从Map删除元素时,需要Iterator来防止ConcurrentModificationException 。是的, Map本身不是Collection ,也无权访问removeIf本身。但是,通过使用: values , keySet或entrySet ,将返回Map内容的视图。该视图实现Collection允许在其上调用removeIf 。
暂无评论