概述
Queue接口与List、Set同一级别,都是继承了Collection接口
Queue,单向队列,是一种特殊的线性表,先入先出(FIFO)的数据结构
常用方法
boolean add(E e):增加一个元索,如果队列已满,则抛出一个IIIegaISlabEepeplian异常boolean offer(E e):添加一个元素并返回true,如果队列已满,则返回false
E element():返回队列头部的元素,如果队列为空,则抛出一个NoSuchElementException异常E peek():返回队列头部的元素,如果队列为空,则返回null
E remove():移除并返回队列头部的元素,如果队列为空,则抛出一个NoSuchElementException异常E poll():移除并返问队列头部的元素,如果队列为空,则返回null
实现类
实现类较多,这里只介绍一种
LinkedList类实现了Queue接口,因此我们可以把LinkedList当成Queue来用。
例子
public class Main {
public static void main(String[] args) {
//add()和remove()方法在失败的时候会抛出异常(不推荐)
Queue<String> queue = new LinkedList<String>();
//添加元素
queue.offer("a");
queue.offer("b");
queue.offer("c");
queue.offer("d");
queue.offer("e");
for(String q : queue){
System.out.println(q);
}
System.out.println("===");
System.out.println("poll="+queue.poll()); //返回第一个元素,并在队列中删除
for(String q : queue){
System.out.println(q);
}
System.out.println("===");
System.out.println("element="+queue.element()); //返回第一个元素
for(String q : queue){
System.out.println(q);
}
System.out.println("===");
System.out.println("peek="+queue.peek()); //返回第一个元素
for(String q : queue){
System.out.println(q);
}
}
}
