使用最低密钥从优先级队列中删除节点

时间:2019-02-24 20:55:41

标签: java

我的优先级队列设置如下:

PriorityQueue<Node> pq = new PriorityQueue<Node>(100);

我的指令说,优先级队列的键将是合计=成本+税。我有getCost()和getTax()方法,但是我不知道这里是否需要它们。

我正在尝试删除键值最低的节点。我不确定初始化优先级队列时是否需要指定密钥,或者是否需要

pq.remove()

将自动删除键最低的那个。

1 个答案:

答案 0 :(得分:1)

PriorityQueue需要填充Comparable元素,或者在构造时要提供Comparator。因此,您的Node需要基于总数=费用+税金进行比较。如果操作正确,队列将把最小的元素放在顶部。