【发布时间】:2013-04-19 01:24:30
【问题描述】:
我正在尝试在 Java 中创建一个FIFO (first in first out) 数据结构,该结构的容量有限,并在没有足够空间容纳新元素时删除最旧的元素。例如:
FIFO<Integer> fifo = new FIFO<Integer>(100); // 100 elements maximum
for (int i = 0; i < 500; i++) {
fifo.write(i);
}
assert fifo.read() == 400; // elements 0..399 are lost
我是在重新发明轮子吗?您能否推荐一些具有相同功能的库(或者它可能是 JDK 的一部分)?线程安全并不重要。
【问题讨论】:
-
Googling for java circular buffer 引导我到this existing Stack Overflow post,这反过来又推荐了相同的org.apache.commons.collections.buffer.CircularFifoBuffer class Fls'Zen 在下面建议。当然,如果你事先不知道这种东西被称为循环缓冲区或环形缓冲区,它可能更难搜索。
标签: java data-structures