Apache Commons Collections 4具有你正在寻找的CircularFifoQueue <>。引用javadoc:
CircularFifoQueue是固定大小的先进先出队列,如果已满,将替换其最早的元素。
import java.util.Queue; import org.apache.commons.collections4.queue.CircularFifoQueue; Queue<Integer> fifo = new CircularFifoQueue<Integer>(2); fifo.add(1); fifo.add(2); fifo.add(3);a System.out.println(fifo); // Observe the result: // [2, 3]
如果你使用的是Apache Commons Collections(3.x)的较旧版本,则可以使用CircularFifoBuffer,这与没有泛型的情况基本相同。
更新:更新了支持通用的通用集合第4版之后的答案。



