优先队列(-)-Java PriorityQueue使用
1 概念
2 java.util.PriorityQueue方法
3 使用例子
1 概念
优先级队列PriorityQueue是不同于先进先出队列的另一种队列,每次从队列中取出的是具有最高优先权的元素。优先队列可用有序数组或堆实现,但是常用堆来实现,下面是2种实现效率的比较:
使用:用于获取优先权最高的元素。
例如:在1000个数中找到最大的那个数。如果用快速排序对数就行排序,时间复杂度是O(NlogN);而用优先队列(用队实现)存储数据,然后取出最大元素(此处为优先权最大的元素)这种数据结构时间复杂度为O(logN)。
2 java.util.PriorityQueue方法
java.util.PriorityQueue是从JDK1.5开始提供的新的数据结构接口。如果不提供Comparator的话,优先队列中元素默认按自然顺序排列,也就是数字默认是小的在队列头,字符串则按字典序排列。优先级队列不允许 null 元素。其提供的方法如下:
3 使用例子
定义存储对象