首页
学习
活动
专区
圈层
工具
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    如何在遍历集合时删除元素

    概述对java.util包下的集合类型来说,如果在通过for-each循环进行遍历时,对集合进行修改操作(删除、添加、修改元素),很多情况下会抛出ConcurrentModificationException...例如:List list = new ArrayList();list.add("a");list.add("b");list.add("c");for (String s : list...而迭代中每次通过next方法获取下一个元素时,都会检查这两个值是否相等,如不相等就会抛出ConcurrentModificationException.解决方案不推荐在遍历的同时对集合进行修改,可新建一个集合...通过迭代器删除元素Iterator itr = list.iterator();while (itr.hasNext()) { String s = itr.next();....equals(s)); //语法糖,removeIf本质是通过迭代器进行删除[1]: 即便不抛异常,也无法保证遍历结果的准确性[2]: fail-fast是一种通用的设计思想,指一旦检测到可能发生错误

    13210

    快速失败Vs安全失败(Java迭代器附示例)

    运行中发生错误,它会立即停止操作,错误也会立即暴露。而安全失败系统在错误发生时不会停止运行。它们隐蔽错误,继续运行,而不会暴露错误。...java快速失败迭代器 : 大多数集合类返回的快速失败迭代器在遍历时不允许结构性修改(结构性修改指添加,删除和更新一个元素) 当遍历的同时被结构性修改,就会抛出ConcurrentModificationException...迭代器每次调用next()方法,都会检查modCount,如果发现modCount被更新,就会抛出ConcurrentModificationException异常。...at java.util.ArrayList$Itr.checkForComodification(Unknown Source) at java.util.ArrayList$Itr.next...ConcurrentModificationException异常 迭代时集合被修改不抛出异常 使用原集合遍历集合元素 使用原集合的副本遍历集合元素 迭代器不要求额外的内存‍‍ ‍‍迭代器需要额外的内存克隆集合对象

    1.3K70
    领券