我有一个for循环

      for (int neighbour : neighbours) {

我可以在循环内修改neighbours的位置。发现多数民众赞成在ConcurrentModificationException的原因。并从https://stackoverflow.com/a/8189527/292291中读取

因此,如果您要修改列表(或一般的任何集合),
使用迭代器,因为这样它就知道了修改,因此
这些将得到妥善处理。

所以我尝试了:
neighboursItr = neighbours.iterator();
while (neighboursItr.hasNext()) {
  // try disconnecting vertices
  neighbour = neighboursItr.next();

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

最佳答案

您在打电话给neightbours.remove(neighbour)吗?在那种情况下,那就是问题。您需要改为调用neightboursItr.remove()

07-25 22:34