队列是一种先进先出(First In First Out,FIFO)的线性数据结构,所有的数据通过队列尾部进行添加,而后在通过队列前端进行取出。
常用方法
public boolean add(E e) //向队列尾部添加数据,数据添加成功则返回true.
public boolean offer(E e) //向队列尾部添加数据,超过队列容量时返回false.
public E remove() //从队列首部删除数据
public E peek() //从队列首部获取数据,但不删除
public E poll() //从队列首部获取数据并删除
代码实例
import java.util.Comparator;
import java.util.PriorityQueue;
import java.util.Queue;
public class Hello {
public static void main(String[] args) {
//PriorityQueue 为优先级队列,会自动为队列中的数据进行排序操作。
//从小到大排序
Queue<String> q = new PriorityQueue<String>();
q.add("abcd");
q.add("bcde");
q.add("cdef");
System.out.println(q.poll());
System.out.println(q.poll());
System.out.println(q.poll());
System.out.println("-----------------");
Comparator<String> cmp = new Comparator<String>() {
public int compare(String a, String b) {
return b.compareTo(a);
}
};
//从大到小排序
Queue<String> q1 = new PriorityQueue<String>(cmp);
q1.add("abcd");
q1.add("bcde");
q1.add("cdef");
System.out.println(q1.poll());
System.out.println(q1.poll());
System.out.println(q1.poll());
}
}
//运行结果
abcd
bcde
cdef
-----------------
cdef
bcde
abcd