当前位置: 首页 > 面试题库 >

如何在不使用ConcurrentModificationException的情况下使用for-each循环进行迭代时修改Collection?

秦斌
2023-03-14
问题内容

如果在使用for-
each循环遍历Collection的同时修改了它,它会给出ConcurrentModificationException。有什么解决方法吗?


问题答案:

使用Iterator#remove

这是在迭代过程中修改集合的唯一安全方法。有关更多信息,请参见“收集接口”教程。

如果还需要在迭代时 _添加_元素的功能,请使用ListIterator



 类似资料:
  • 问题内容: 目前,我正在此站点上抓取图表图表信息。要抓取信息,我需要为有很多镜头的情况做一个for循环。我可以通过单击“ Team Stats”并找到射门次数来找到射门次数。 我想做出适当的选择而不必找出拍摄数量。 我目前正在做什么: 任何帮助将不胜感激。请让我知道是否需要进一步的信息。 问题答案: 我不确定您的变量k是什么意思。 我从所有评论中获得了建议。

  • 问题内容: 假设我们尝试将可能引发检查异常的lambda应用于Java 8流: 这不会编译。 一种解决方法是将检查后的异常嵌套在其中,但是这会使以后的异常处理变得复杂,而且很丑陋: 另一种解决方法可能是转换限制功能,以普通的旧的foreach 循环是比较友好的检查的异常。 但是幼稚的方法失败了: 更新资料 为何在的地方贴了一个回答该问题的技巧。作为副答案本身并不能真正回答该问题。我认为这不足以使这

  • 问题内容: 在Java中添加了增强的for循环(foreach循环)后,它可以与数组或的目标一起使用。 这对于仅实现一种迭代类型并因此具有单个方法的Collection类非常有用。 但是我发现自己非常想让我使用Collection类中的非标准迭代器感到沮丧。例如,我最近试图帮助某人使用a 作为LIFO /堆栈,然后以FIFO顺序打印元素。我被迫这样做: 我失去了for-each循环的优势。这不仅与

  • 问题内容: 我一直在寻找一种不用使用collections.sort就可以对数组列表进行排序的方法,因为我自己的逻辑有缺陷,而且我遇到了很多麻烦。 我需要对它进行排序,以便可以使用我创建的一种方法,该方法基本上可以执行collections.swap的工作,以便对数组列表进行完全排序。 这是我的代码: 我对此一直很烦恼。抱歉,这是在伤害社区。 问题答案: 我想,你希望下面的算法:在阵列的其余部分发

  • 问题内容: 我遇到了非常奇怪的Java行为,但我不知道这是一个bug,还是我错过了一些东西。 该代码只需遍历stateStack(LinkedList)列表并销毁所有状态。 引发了以下异常: 该代码通常可以正常工作,并且已经投入生产一年多了。 这可能是Java错误吗? / 更新 / destroy()调用不会修改stateStack。如果可以的话,我猜Java会抛出ConcurrentModifi

  • 我需要关于如何在使用该类时使用for循环设置值而不替换现有值的帮助。例如,我需要打印出三个不同的值,分别是test1、test2、test3。下面是代码, 电流输出 预期产出 实现类 谢谢你的帮助