我想升级到apache.commons.Collections4,但是一些类CircularFifoBuffer
和UnboundedFifoBuffer
被删除
import org.apache.commons.collections.buffer.CircularFifoBuffer;
对于这样的类,什么是合适的替代者?
找到了几条建议:
哈德尔卡
或许还有另一种选择:
用MinMaxPriorityQueue替换buffer,它本身也不是线程安全的,但幸运的是,guava以Queues.SynchronizedQueue(Queue q)调用的形式提供了线程安全的包装器。 因为我们已经在别处使用了番石榴,所以应该可以使用库而不是Commons。 不确定两者的性能比较。
塞德里克·赖琴巴赫
看起来Queues#SynchronizedQueue确实相当于BufferUtils#SynchronizedBuffer,即同步对包含的队列/缓冲区的每次访问。 然而,对于CircularFifoBuffer,更精确的匹配可能是EvictingQueue,或者,因为同步包装器适用于任何队列,甚至包括Java自己的Apache新的CircularFifoQueue。
我在邮件列表或发布说明中没有找到答案
在任务集合中找到答案-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