提问者:小点点

FifoBuffer-apache common collections 4替换


我想升级到apache.commons.Collections4,但是一些类CircularFifoBufferUnboundedFifoBuffer被删除

import org.apache.commons.collections.buffer.CircularFifoBuffer;

对于这样的类,什么是合适的替代者?

找到了几条建议:

哈德尔卡

或许还有另一种选择:

用MinMaxPriorityQueue替换buffer,它本身也不是线程安全的,但幸运的是,guava以Queues.SynchronizedQueue(Queue q)调用的形式提供了线程安全的包装器。 因为我们已经在别处使用了番石榴,所以应该可以使用库而不是Commons。 不确定两者的性能比较。

塞德里克·赖琴巴赫

看起来Queues#SynchronizedQueue确实相当于BufferUtils#SynchronizedBuffer,即同步对包含的队列/缓冲区的每次访问。 然而,对于CircularFifoBuffer,更精确的匹配可能是EvictingQueue,或者,因为同步包装器适用于任何队列,甚至包括Java自己的Apache新的CircularFifoQueue。

我在邮件列表或发布说明中没有找到答案


共1个答案

匿名用户

在任务集合中找到答案-432将缓冲区接口替换为java.util.queue

BoundedFifoBuffer替换为java.util.concurrent.ArrayBlockingQueue

CircularFifoBuffer替换为java.util.concurrent.ArrayBlockingQueue。

PredicatedBuffer转换为PredivatedBuffer

PriorityBuffer替换为java.util.PriorityQueue

SynchronizedBuffer替换为java.util.concurrent.SynchronizedQueue

BlockingBuffer替换为java.util.concurrent.BlockingQueue(实用的java.util.concurrent.ArrayBlockingQueue或java.util.concurrent.SynchronizedQueue)

BoundedBuffer替换为java.util.concurrent.ArrayBlockingQueue

TransformedBuffer已传输到TransformedQueue

UnboundedFifoBuffer替换为java.util.concurrent.ArrayBlockingQueue