gpt4 book ai didi

java - ConcurrentModificationException 和 HashSet.iterator()

转载 作者:塔克拉玛干 更新时间:2023-11-01 21:40:55 27 4
gpt4 key购买 nike

我有一个for循环

      for (int neighbour : neighbours) {

我可以在循环中修改 neighbors 的地方。发现这就是 ConcurrentModificationException 的原因。并阅读 https://stackoverflow.com/a/8189527/292291

Hence if you want to modify the list (or any collection in general), use iterator, because then it is aware of the modifications and hence those will be handled properly.

所以我尝试了:

neighboursItr = neighbours.iterator();
while (neighboursItr.hasNext()) {
// try disconnecting vertices
neighbour = neighboursItr.next();

但这并不能解决问题。为什么?

最佳答案

你是在调用 neighbours.remove(neighbor) 吗?在那种情况下,这就是问题所在。您需要改为调用 neightboursItr.remove()

关于java - ConcurrentModificationException 和 HashSet.iterator(),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12562548/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com