1.队列的基本介绍
队列是数据结构中比较重要的一种类型(是一种数据结构),它支持 FIFO,尾部添加、头部删除(先进队列的元素先出队列),跟我们生活中的排队类似。
队列是一种特殊的线性表,它只允许在表的前端进行删除操作,而在表的后端进行插入操作。
LinkedList类实现了Queue接口,因此我们可以把LinkedList当成Queue来用。
注:队列是先进先出,栈是先进后出。(栈的使用)
2.队列的基本用法
import java.util.Queue; //引用队列
import java.util.LinkedList;
//初始化
Queue<Integer> queue = new LinkedList<Integer>();
//增加一个元素
queue.add(value);//如果队列已满,则抛出一个IIIegaISlabEepeplian异常
queue.offer(value);//如果队列已满,则返回false
queue.put(value);//如果队列满,则阻塞
//移除并返回队列头部的元素
queue.remove(); //如果队列为空,则抛出一个NoSuchElementException异常
queue.poll(); // 如果队列为空,则返回null
queue.take();//如果队列为空,则阻塞
//返回队列头部的元素
queue.element();//如果队列为空,则抛出一个NoSuchElementException异常
queue.peek();//如果队列为空,则返回null
//判断队列是否为空
queue.isEmpty()
3.实例
import java.util.Queue;
import java.util.LinkedList;
class QueueTest
{
public static void main(String[] args)
{
Queue<Integer> queue = new LinkedList<Integer>();
//添加元素(add/offer/put)
queue.add(1);
queue.add(2);
queue.add(3);
queue.add(4);
queue.add(5);
//输出队列
for(Integer q : queue)
{
System.out.println(q);
}
System.out.println("=======");
//移除并返回队列头部的元素(remove/poll/take)
System.out.println("poll="+queue.poll());
for(Integer q : queue)
{
System.out.println(q);
}
System.out.println("=======");
//返回队列头部的元素(element/peek)
System.out.println("peek="+queue.peek());
for(Integer q : queue)
{
System.out.println(q);
}
System.out.println("=======");
//判断队列是否为空
System.out.println("queue.isEmpty()="+queue.isEmpty());
}
}
结果如下: