私はListBuffer[MyClass]
キューとしてそれを使用しています。
ここで、次のコードを検討してください。
private def buildChunks(): Unit =
{
for(a <- 0 until buildQueue.size)
{
val chunk: Chunk = buildQueue(a)
chunk.init()
// buildQueue -= chunk
// buildQueue.remove(a)
}
}
理解に関する私の問題は、次の2行に要約されます。
buildQueue -= chunk
buildQueue.remove(a)
どちらもArrayOutOfBoundsException
使用すると if が生成されます (もちろん、相互に排他的です。一度に両方を使用したわけではありません!)
私が言ったように (そしてその名前が示すように)、ListBuffer はキューとして使用されるため、1 つのアイテムが処理されたら、それをリストから削除したいと考えています。
これらの行のいずれかが ArrayOutOfBoundsException をスローする理由がわかりません
では、アイテムを削除するにはどうすればよいですか?
あなたが私にこれを理解させることができれば、私は喜んで次のようなよりきれいなアプローチを使用します:
val chunk: Chunk = buildQueue.remove(a)
もちろん、これは機能しません