Java PriorityQueue

1 什么是Java Queue接口

Java Queue接口以FIFO(先进先出)的方式对元素进行排序。在FIFO中,首先删除第一个元素,最后删除最后一个元素。

2 Java Queue接口的语法

public interface Queue<E> extends Collection<E>  

3 Java Queue接口的方法

方法 描述
boolean add(object) 用于将指定的元素插入队列中,并在成功后返回true。
boolean offer(object) 用于将指定的元素插入队列。
Object remove() 用于检索和删除队列的头部。
Object poll() 用于检索和删除队列的开头,如果队列为空,则返回null。
Object element() 用于检索但不删除队列的头部。
Object peek() 用于检索但不删除此队列的头部,如果此队列为空,则返回null。
void clear() 删除队列的所有元素。
Comparator<? super E> comparator() 此方法返回用于对队列中的元素进行排序的比较器;如果此队列是根据其元素的自然顺序排序的,则返回null。
boolean contains(Object o) 如果此队列包含指定的元素,则此方法返回true。
Iterator<E> iterator() 方法在此队列中的元素上返回迭代器。
int size() 方法返回此集合中的元素数。
Object[] toArray() 方法返回一个包含此队列中所有元素的数组。
<T> T[] toArray(T[] a) 方法返回一个包含此队列中所有元素的数组。返回数组的运行时类型是指定数组的运行时类型。

4 什么是Java PriorityQueue

PriorityQueue类提供使用队列的便利。但是它不会以FIFO方式对元素进行排序。它继承了AbstractQueue类。

5 Java PriorityQueue的语法

public class PriorityQueue<E> extends AbstractQueue<E> implements Serializable  

6 Java PriorityQueue的例子

package com.yiidian;

/**
 * 一点教程网: http://www.yiidian.com
 */
/**
 * Java PriorityQueue的例子
 */
import java.util.*;

class Demo{

    public static void main(String args[]){
        PriorityQueue<String> queue=new PriorityQueue<String>();
        queue.add("Eric");
        queue.add("Jack");
        queue.add("Rose");
        queue.add("Paul");
        queue.add("Macy");
        System.out.println("head:"+queue.element());
        System.out.println("head:"+queue.peek());
        System.out.println("遍历队列的元素:");
        Iterator itr=queue.iterator();
        while(itr.hasNext()){
            System.out.println(itr.next());
        }
        queue.remove();
        queue.poll();
        System.out.println("移除两个元素后:");
        Iterator<String> itr2=queue.iterator();
        while(itr2.hasNext()){
            System.out.println(itr2.next());
        }
    }
}

输出结果为:

head:Eric
head:Eric
遍历队列的元素:
Eric
Jack
Rose
Paul
Macy
移除两个元素后:
Macy
Paul
Rose

 

推荐好课