0

我有 ConcurrentModificationException 的问题。这是我的部分代码:

    var deltaSum = 0
    arrDeltaBrainWaves.map {
         value -> deltaSum += value
   }

要清楚 - 我知道为什么会出现这个错误:) 问题是 - 我不知道解决方案是什么?我真的需要创建新的临时列表并将值放在那里吗?它只是没有意义:) 任何更好的选择,好吗?

编辑:

我将代码更改为以下:

var deltaSum = 0
                                with(arrDeltaBrainWaves.iterator()) {
                                    forEach {
                                        deltaSum += it
                                    }
                                }
                                avgDelta = deltaSum / arrDeltaBrainWaves.size

但问题依然存在。

4

2 回答 2

1

你需要使用迭代器

例子:

val myCollection = mutableListOf(1,2,3,4)
val iterator = myCollection.iterator()
while(iterator.hasNext()){
    val item = iterator.next()
    //do something
}

这将避免 ConcurrentModificationExceptions

于 2021-10-01T21:37:56.997 回答
1

ConcurrentModificationException 可以通过使用迭代器来避免。这是 kotlin 的方法:

with(arrDeltaBrainWaves.iterator()) {
 forEach {
    
 }
}
于 2021-10-01T21:43:56.953 回答