1

私は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)

もちろん、これは機能しません

4

1 に答える 1