Java标准库中的Priority Queue实现似乎是一个最小优先级队列,我觉得有些令人困惑。为了将其转换为最大优先级队列,我创建了一个定制的比较器对象。
Comparator<Integer> cmp = new Comparator<Integer>()
{
public int compare( Integer x, Integer y )
{
return y - x;
}
};
我想知道是否有更优雅的解决方案。本质上,我需要一个通用的优先队列,可以用来实现Dijkstra等算法。我甚至没有意识到会有反向操作的队列:/