我在理解 CircularFifoQueue 类的工作原理时遇到了一些麻烦。所以对于我的要求,我需要一个固定大小(大约 6000 个元素)的 FIFO 队列。起初我使用的是 ArrayDequeue,但它的表现相当糟糕。然后我阅读了有关 CircularFifoQueue 的信息并进行了尝试。我可以看到性能的提升,但它仍然不是很快。
我现在的问题是:如果队列已满并且我添加了一个元素会怎样?是否复制了整个底层数组?是否有一些偏移量,将被设置,例如
head = (head + 1) % size;
如果是后者,那么我想我的算法表现不佳。
谢谢!