我有一个ListBuffer[MyClass]
并将其用作队列。
现在考虑以下代码:
private def buildChunks(): Unit =
{
for(a <- 0 until buildQueue.size)
{
val chunk: Chunk = buildQueue(a)
chunk.init()
// buildQueue -= chunk
// buildQueue.remove(a)
}
}
我的理解问题归结为这两行:
buildQueue -= chunk
buildQueue.remove(a)
它们都产生一个ArrayOutOfBoundsException
if used (当然互斥我没有同时使用它们!)
正如我所说的(顾名思义),ListBuffer 用作队列,因此如果处理了一个项目,我想将其从列表中删除。
我不明白为什么这些行中的任何一行都会引发 ArrayOutOfBoundsException
那我应该如何删除一个项目呢?
如果您能让我理解这一点,我很乐意使用更漂亮的方法,例如:
val chunk: Chunk = buildQueue.remove(a)
但这当然行不通