我有一个PriorityQueue<SomePlayerObject>
的实例。它是用Comparator
构造的,它强加了一个与equals不一致的排序:它根据玩家上线的时间命令SomePlayerObject
。
SomePlayerObject
有一个方法:boolean isValid()
。
我希望来自poll()
PriorityQueue
符合isValid
返回true标准的第一个元素(根据自定义比较器)。
这可能吗?
答案 0 :(得分:2)
你唯一可以理所当然地做的就是继续调用正常的poll()
方法,直到isValid()
为止。这几乎可以肯定你应该这样做的方式。
你可以想象在Java 8中调用queue.removeIf(e -> !e.isValid())
,但这不会比以前的方法更有效。