从符合标准的优先级中挑选元素

时间:2016-05-20 17:14:51

标签: java priority-queue comparator

我有一个PriorityQueue<SomePlayerObject>的实例。它是用Comparator构造的,它强加了一个与equals不一致的排序:它根据玩家上线的时间命令SomePlayerObject

SomePlayerObject有一个方法:boolean isValid()

我希望来自poll() PriorityQueue符合isValid返回true标准的第一个元素(根据自定义比较器)。

这可能吗?

1 个答案:

答案 0 :(得分:2)

你唯一可以理所当然地做的就是继续调用正常的poll()方法,直到isValid()为止。这几乎可以肯定你应该这样做的方式。

你可以想象在Java 8中调用queue.removeIf(e -> !e.isValid()),但这不会比以前的方法更有效。