相关疑难解决方法(0)

我如何使用PriorityQueue?

我如何得到一个PriorityQueue排序我希望它排序的东西?

另外,offeradd方法之间有区别吗?

java priority-queue

357
推荐指数
8
解决办法
55万
查看次数

在其元素更改优先级时更新Java PriorityQueue

我正在尝试使用a PriorityQueue来命令对象Comparator.

这可以很容易地实现,但是对象类变量(比较器计算优先级)可能在初始插入后发生变化.大多数人都提出了删除对象,更新值并再次重新插入的简单解决方案,因为这是优先级队列的比较器付诸行动的时候.

除了在PriorityQueue周围创建一个包装类之外,还有更好的方法吗?

java priority-queue

54
推荐指数
5
解决办法
5万
查看次数

在Java中对优先级队列进行排序

我试图插入整数PriorityQueue,我知道:

如果在PriorityQueue构造a时未指定比较器,则使用存储在队列中的数据类型的默认比较器.默认比较器将按升序对队列进行排序

但是,我得到的输出不是按排序顺序.运行以下代码后的输出是:[2, 4, 8, 6]

public static void main(String args[]) {
    PriorityQueue<Integer> q = new PriorityQueue<Integer>(10);
    q.offer(4);
    q.offer(2);
    q.offer(8);
    q.offer(6);

    System.out.print(q);
}
Run Code Online (Sandbox Code Playgroud)

有人可以解释一下原因吗?

java priority-queue

15
推荐指数
2
解决办法
4万
查看次数

更改 PriorityQueue 中元素的优先级

我知道PriorityQueueadd()使用对象的compareTo()方法对元素进行排序时会自动对元素进行排序。假设我想在某个时候更改队列中元素的优先级。PriorityQueue考虑到元素的优先级发生了变化,我如何明确地命令再次对自身进行排序?

java queue priority-queue

5
推荐指数
1
解决办法
2550
查看次数

标签 统计

java ×4

priority-queue ×4

queue ×1