java-PriorityQueues中的元素何时排序?
作者:互联网
PriorityQueue类是明智地插入元素优先级还是只是当我们仅轮询元素时才发现最高优先级元素并将其返回?
解决方法:
从JDK本身的源代码(格式化我的):
优先级队列表示为平衡的二进制堆:queue [n]的两个子级是queue [2 * n 1]和queue [2 *(n 1)].
如果比较器为空,则按比较器或元素的自然顺序对优先级队列进行排序:对于堆中的每个节点n和n的每个后代d,n <= d.假设队列为非空,则具有最低值的元素位于queue [0]中. 因此,您可以将PriorityQueue中元素的插入/删除视为提供结果以及堆平衡的操作.
标签:data-structures,priority-queue,java 来源: https://codeday.me/bug/20191108/2007143.html