【问题标题】:java 8 - circular bufferjava 8 - 循环缓冲区
【发布时间】:2019-06-08 16:19:19
【问题描述】:

Java 中循环缓冲区的最佳实现是什么?我已经阅读了other questions,但它们已经过时并且引用了 Apache Commons Collections 4 中不存在的CircularFifoBuffer。在 Java 8 中是否有一种新的、被广泛接受的方式来使用循环缓冲区?

【问题讨论】:

  • 好吧,CircularFifoQueue 可能是您想要的。顺便说一句,“循环依赖”标签在这里似乎是错误的 - 或者我错过了什么?
  • 你好像忘了看the answer by T. Baum
  • 我认为 CircularFifoBuffer 被移除到 CircularFifoQueue 中,非常感谢!关于标签,这绝对是一个错误,我很抱歉。

标签: java buffer circular-buffer


【解决方案1】:

java.util.ArrayDeque。这门课还是有点被忽视了。

来自文档:

Deque 接口的可调整大小的数组实现。数组双端队列 没有容量限制;他们根据需要成长以支持 用法。 … 这个类在用作 堆栈,并且在用作队列时比LinkedList 更快。

自:

1.6

文档没有直接说明它是循环的,但它确实是(我只是检查了源代码以 100 % 确定)。由于他们建议将其用作队列,因此不使其循环是没有意义的。

【讨论】:

  • 文档中的引用说 Array deques have no capacity restrictions 这意味着它将无限增长。因此,它与所讨论的要求完全相反 - 循环缓冲区将包装并且不会超出指定的限制。
  • @uvsmtid 你可能是对的,我稍微扩展了循环缓冲区的定义。
猜你喜欢
  • 2016-06-11
  • 2022-11-14
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多