ConcurrentLinkedQueue不会删除

时间:2012-01-30 16:53:34

标签: java

我想知道在哪种情况下ConcurrentLinkedQueue无法从其集合中删除元素。该项目存在,它在集合内但调用

SomeConcurrentLinkedQueue.remove(item)

不会从集合中删除此项目。集合是锁定还是什么?

1 个答案:

答案 0 :(得分:6)

如果ConcurrentLinkedQueue.remove(item)返回false,则表示item与队列的任何条目都不相等。如果这不是您所期望的,请检查item的{​​{1}}方法是否有错误。

另一种可能性(由@Louis Wasserman指出)是队列包含多个出现的equals()ConcurrentLinkedQueue.remove(item)只会移除其中一个。