我正在尝试按升序排列整数对,其中如果两个条目都严格小于另一对的条目,则认为一对小于另一对,如果两个条目都严格大于另一对的条目,则大于另一对一对。所有其他情况都被认为是无法比拟的。
我想解决这个问题的方法是通过定义Comparator
实现上述内容的 a ,但会在无法比较的情况下抛出异常,并将其提供给 a PriorityQueue
。当然,在插入一对优先级队列时,会进行多次比较,同时将新条目冒泡到堆中的正确位置,其中许多是可比较的。但是在冒泡过程中可能会遇到与这个新的pair无法比较的pair,会抛出异常。如果发生这种情况,该状态将是PriorityQueue
什么?我试图插入的这对是否会在抛出异常之前位于堆中的最后一个位置?如果我使用该PriorityQueue's remove(Object o)
方法,是否PriorityQueue
会恢复到一致的状态?
谢谢