我试图在java中创建一个固定大小的Queue,我只想在Queue中存储最多10个对象。但是,队列继续存储/添加对象并忽略if
条件。
我的代码:
Queue<Customer> sitt = new LinkedList<Customer>();
if(sitt.size() < 10) {
System.out.println("Added");
((LinkedList<Customer>)sitt).offer(cust);
}else {
System.out.println("No space..");
}
我有另一个Runnable类,我正在运行22个线程。此条件应仅添加Customer类的0-9
个对象。但是,sitt.size()
甚至超过20.有谁能告诉我这里的问题是什么?即使if
条件被忽略。
P.S:我在这里使用Queue的原因是因为我需要FIFO。
答案 0 :(得分:3)
您可以使用LinkedBlockingQueue
中的java.util.concurrent
- 它允许您指定队列的固定大小。
new LinkedBlockingQueue<>(10);
然后你可以使用offer()
方法将值插入其中,如果队列已满,则返回false
。