我想升级到 apache.commons.collections4,但有些类 asCircularFifoBuffer
和UnboundedFifoBuffer
被删除
import org.apache.commons.collections.buffer.CircularFifoBuffer;
此类课程的正确替代品是什么?
找到了几个 建议:
有简·哈德卡
或者也许还有另一种选择:
用 MinMaxPriorityQueue 替换缓冲区,它本身也不是线程安全的,但幸运的是,番石榴以 Queues.synchronizedQueue(Queue q) 调用的形式提供了线程安全的包装器。因为我们已经在其他地方使用了番石榴,所以应该可以使用库而不是 commons。不确定两者的性能比较。
塞德里克·赖兴巴赫
看起来 Queues#synchronizedQueue 确实等同于 BufferUtils#synchronizedBuffer,即同步对包含的队列/缓冲区的每次访问。然而,在 Guava 中更精确的匹配 CircularFifoBuffer 可能是 EvictingQueue,或者,因为同步包装器适用于任何队列,甚至 Java 自己的 Apache 的新 CircularFifoQueue。