首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > 编程 >

优先队列(-)-Java PriorityQueue应用

2013-03-01 
优先队列(-)-Java PriorityQueue使用1 概念2 java.util.PriorityQueue方法3 使用例子1 概念优先级队列Prio

优先队列(-)-Java PriorityQueue使用

1 概念

2 java.util.PriorityQueue方法

3 使用例子


1 概念

  优先级队列PriorityQueue是不同于先进先出队列的另一种队列,每次从队列中取出的是具有最高优先权的元素。优先队列可用有序数组或堆实现,但是常用堆来实现,下面是2种实现效率的比较:

优先队列(-)-Java PriorityQueue应用

优先队列(-)-Java PriorityQueue应用

使用:用于获取优先权最高的元素。

例如:在1000个数中找到最大的那个数。如果用快速排序对数就行排序,时间复杂度是O(NlogN);而用优先队列(用队实现)存储数据,然后取出最大元素(此处为优先权最大的元素)这种数据结构时间复杂度为O(logN)。

2 java.util.PriorityQueue方法

  java.util.PriorityQueue是从JDK1.5开始提供的新的数据结构接口。如果不提供Comparator的话,优先队列中元素默认按自然顺序排列,也就是数字默认是小的在队列头,字符串则按字典序排列。优先级队列不允许 null 元素。其提供的方法如下:

优先队列(-)-Java PriorityQueue应用

优先队列(-)-Java PriorityQueue应用

3 使用例子

定义存储对象




热点排行