Java标准库中的Priority Queue实现似乎是一个最小优先级队列,我发现它有点令人困惑。为了把它变成最大的一个,我创建了一个自定义比较对象。将Java PriorityQueue更改为Max PQ
Comparator<Integer> cmp = new Comparator<Integer>()
{
public int compare(Integer x, Integer y)
{
return y - x;
}
};
我想知道是否有更优雅的解决方案。基本上我不想要一个可以用来实现Dijkstras等的通用优先级队列。我甚至没有意识到会有反向操作的队列:/
Java 8添加了一个构造函数,它只需要一个Comparator(https://docs.oracle.com/javase/8/docs/api/java/util/PriorityQueue.html),所以如果您使用的是Java 8,不必提供初始能力。 – tsleyson 2016-05-03 22:05:46