有没有人知道Java中是否有FIFO队列实现,或者是否允许用户设置最大大小的任何其他库,并且当队列满了时会自动拒绝任何请求?
我已经看过guava队列实现了,但是从我看到它将会在队列满时删除队列中的第一个元素,而不是拒绝请求。
答案 0 :(得分:1)
大多数内置队列都是这样做的。我建议使用ArrayBlockingQueue,因为它非常适合有限的大小,但您也可以使用LinkedBlockingQueue。 BlockingDeque也支持限制。
BTW如果您正在使用带有线程的队列,我建议您使用ExecutorService,因为它将这些组合在一起。
答案 1 :(得分:0)
在简单队列上使用装饰器模式,例如:
Queue<String> queue = new LinkedList<String>();
您的包装器代码将确保强制最大尺寸拒绝额外添加。
答案 2 :(得分:0)
int size=500;
Queue<String> = new ArrayBlockingQueue<>(size);