java中Queue队列的使用和介绍(2)之PriorityQueue

public class PriorityQueue<E> extends AbstractQueue<E>  implements Serializable
 
 
一个基于优先级堆的极大优先级队列。此队列按照在构造时所指定的顺序对元素排序,既可以根据元素的自然顺序 来指定排序(参阅 Comparable),也可以根据 Comparator 来指定,这取决于使用哪种构造方法。优先级队列不允许 null 元素。依靠自然排序的优先级队列还不允许插入不可比较的对象(这样做可能导致 ClassCastException)。
 
 
 此队列的 是按指定排序方式的最小 元素。如果多个元素都是最小值,则头是其中一个元素——选择方法是任意的。队列检索操作 poll、remove、peek 和 element 访问处于队列头的元素
 
优先级队列是无界的,但是有一个内部容量,控制着用于存储队列元素的数组的大小。它总是至少与队列的大小相同。随着不断向优先级队列添加元素,其容量会自动增加。无需指定容量增加策略的细节。 
 
此实现不是同步的。 
 
测试
package queue; import java.util.PriorityQueue; import java.util.Queue; public class TestPriorityQueue { 
public static void main(String[] args) {         Queue<String> queue=new PriorityQueue<String>();// 使用默认的初始容量(11)创建一个 PriorityQueue,并根据其自然顺序来排序其元素(使用 Comparable)         queue.offer("b");         queue.offer("a");         queue.add("6");         queue.add("3");         queue.add("2");         queue.add("9");         queue.add("9");         queue.add("9");         queue.add("9");         queue.add("9");         queue.add("9");         queue.add("9");         queue.add("19");         queue.add("29");         System.out.println(queue.size());         //优先级堆,其实是最小堆         while(!queue.isEmpty()){          String v=queue.poll();          System.out.print(v+" ");         }         System.out.println(queue.size());       } } 

你可能感兴趣的:(java)