队列在使用有限资源时非常有用,因为它可以确保在以下情况下删除最旧的元素:添加新元素。然而,手动实现这一点可能很麻烦。
Apache Commons Collections 4 通过其 CircularFifoQueue 提供了一个方便的解决方案。根据其文档:
CircularFifoQueue is a first-in first-out queue with a fixed size that replaces its oldest element if full.
使用此类非常简单:
import org.apache.commons.collections4.queue.CircularFifoQueue; CircularFifoQueue<Integer> queue = new CircularFifoQueue<>(2); queue.add(1); queue.add(2); queue.add(3); System.out.println(queue); // [2, 3]
请注意,尽管队列的最大大小为 2,但在添加 3 时如何删除最旧的元素 (1)。
对于旧版本的 Apache Commons Collections (3.x),可以使用 CircularFifoBuffer,其操作方式类似,但是缺少泛型。
以上是如何在Java中轻松实现大小受限的队列?的详细内容。更多信息请关注PHP中文网其他相关文章!