当我们编码并使用优先级队列时,优先级到底代表什么?是抽象的还是具体的,例如按不同建筑物的高度排序? 使用优先级队列的好处是什么?
答案 0 :(得分:2)
普通队列以先到先得的方式处理项目。优先级队列根据项目的优先级确定服务订单。有了优先级队列,下一个要处理的项目将是优先级最高的项目。
示例:
这是具体的事情,它确定系统的实际操作。作为程序员的工作是通过提供订购属性来识别和反映现实情况。在Java中,这是通过制作对象Comparable
或提供Comparator
来完成的。
答案 1 :(得分:1)
您可以通过让元素实现Comparable
接口并提供Comparator
来构造队列来定义优先级,请参见doc:
优先级队列的元素根据其顺序进行排序 自然排序,或由队列构造时提供的比较器 时间。
答案 2 :(得分:0)
考虑到构造函数之一接受Comparator
...与之相比,它变得显而易见。默认情况下,除非指定,否则它将使用Comparator.naturalOrder()