如何制作循环缓冲区?

时间:2014-09-30 02:08:46

标签: java buffer

我必须从一个数组中为类创建一个循环缓冲区,我不能完全理解这个概念是如何实现的。我知道有些索引来回反复但我真的不明白这是如何实现的。你如何将尾部或头部分配给数组的元素,或者将它们两种方式编入索引?任何建议,代码或解释都会非常有用。

2 个答案:

答案 0 :(得分:1)

循环缓冲区基本上只是一个数组和两个整数,用于跟踪您认为是" tail"的位置。和#34;头"。

空缓冲区以" tail"开始。和#34;头"在同一个索引(0和任何索引一样好。)

当你添加到缓冲区时,你插入" tail"点添加,然后将尾部移动到下一个位置。它得到"循环"因为当"尾巴"从数组的末尾开始,它跳回到它的开头(索引0)。

同样,您可以通过查看和调整相应位置从头部或尾部移除缓冲区。

答案 1 :(得分:0)

通过将结构的tail连接到head,您可以制作圆形内容。在数组中,这可以通过多种不同的方式完成(迭代器,自定义类/处理程序等),但它们的共同之处是next之后的tail元素是{{ 1}}

这是一个使用head运算符处理尾部连接的非常简单的示例:

%

此循环将输出: 0 3 五 0 3 五 0 3 5 ......进行100次迭代

相关问题