有人可以解释一下,队列环境中的(线性)环形缓冲区如何工作?如何使用环形缓冲区实现队列?到底有什么好处呢 ?为什么使用环形缓冲区?感谢您的期待。
答案 0 :(得分:1)
循环缓冲区对于FIFO(先进先出)方案很有用,因此对于具有固定最大大小的队列来说是一个很好的实现策略。
你通常有四个指针:
添加元素(使用数组)时会发生以下情况:
(endindex + 1) %
bufferSize
(startIndex + 1) % bufferSize
当你从缓冲区中覆盖或删除元素时,你总是对队列中最长的元素执行此操作。
这个概念有不同的用例:一个是例如内存中的日志。
有关更多实施细节,请参阅: http://en.wikipedia.org/wiki/Circular_buffer
答案 1 :(得分:0)
看一下java.util.ArrayDeque的实现。