一、队列
队列,也是针对线性表进行进行进一步的封装和限制,提供的操作有三个:入队列、出队列、取队首元素
队列作为一种数据结构,实际开发中的应用场景非常之多,远远多于栈。队列这样的数据结构,往往是针对“耗时比较长”的操作提供辅助操作,有些操作没办法一口气全部完成,所以需要将他们按照顺序,一个一个处理。为了确保处理的顺序不乱,就把待处理的数据放到队列之中。
队列的表示:Queue 是一个接口(interface) 接口不能创建实例,只能创建其他类来实现该接口,再通过整个类来实现接口中的抽象方法。
出入队列的操作都可能抛出异常,但是原则上来说,入队列一般不会失败,除非是插入的元素类型不匹配,传入null值之类的...
Deque是“双端队列”,两端都能进,两端都能出;Queue是“普通队列”,一头进,另一头出
虽然JAVA中不能 new ArrayList 作为Queue的实现的,但是其实队列也是完全可以基于数组实现。
二、Queue的一些基本操作
package Queue;import java.util.ArrayList;
import java.util.LinkedList;
import java.util.Queue;public class Test1 {public static void main(String[] args) {Queue<Integer> queue = new LinkedList<>();//这个不会报错因为LinkedList实现了Queue接口// Queue<Integer> queue1 = new ArrayList<>();//这个会报错因为ArrayList没有实现Queue接口queue.offer(1);queue.offer(2);queue.offer(3);queue.offer(4);System.out.println(queue.peek());System.out.println(queue.poll());System.out.println(queue.poll());System.out.println(queue.poll());System.out.println(queue.poll());System.out.println(queue.remove());}
}