Java ConcurrentLinkedQueue不会删除

Java ConcurrentLinkedQueue不会删除,java,Java,我想知道在何种情况下ConcurrentLinkedQueue不能从其集合中删除元素。该项存在,它在集合中,但正在调用 SomeConcurrentLinkedQueue.remove(item) 不会从集合中删除此项目。集合被锁定了吗?如果返回false,这意味着该项与队列的任何条目都不相等。如果这不是您所期望的,请检查该项的equals方法是否存在错误 @Louis Wasserman指出的另一种可能性是队列包含多次出现的项。将只删除其中一个。如果返回false,则表示该项与队列中的任何条

我想知道在何种情况下ConcurrentLinkedQueue不能从其集合中删除元素。该项存在,它在集合中,但正在调用

SomeConcurrentLinkedQueue.remove(item)
不会从集合中删除此项目。集合被锁定了吗?

如果返回false,这意味着该项与队列的任何条目都不相等。如果这不是您所期望的,请检查该项的equals方法是否存在错误

@Louis Wasserman指出的另一种可能性是队列包含多次出现的项。将只删除其中一个。

如果返回false,则表示该项与队列中的任何条目都不相等。如果这不是您所期望的,请检查该项的equals方法是否存在错误


@Louis Wasserman指出的另一种可能性是队列包含多次出现的项。将只删除其中一个。

好吧,这不会返回false,因为我使用测试来查看该项是否在ConcurrentLinkedQueue中:iflist.containsitem{Log.dRemoved,Removed;list.removietem;}主要问题是该项仍然存在于列表中@turbodoom你指的是哪一项?一个简单的测试将显示list.containsitem在list.removietem发生后返回false。这可能是因为该项在列表中多次出现。queue.removeitem只删除一个事件。好吧,这并没有返回false,因为我使用了一个测试来查看该项是否在ConcurrentLinkedQueue中:iflist.containsitem{Log.dRemoved,Removed;list.removeitem;}主要问题是该项仍然存在于列表中@turbodoom你指的是哪一项?一个简单的测试将显示list.containsitem在list.removietem发生后返回false。这可能是因为该项在列表中多次出现。queue.removietem仅删除一个事件。