一、什么是队列
普通队列:只允许在一端进行插入数据操作,在另一端进行删除数据操作的特殊线性表,队列具有先进先出FIFO(FirstIn First Out) 入队列:进行插入操作的一端称为队尾(Tail/Rear) 出队列:进行删除操作的一端称为队头(Head/Front)
双端队列:可以在对头或者队尾进行插入或者删除操作。
普通队列和双端队列
从上面知道双向列表可以当普通队列使用,也可以当双端队列使用,也可以当栈使用。
二、队列常用的方法
2.1、Queue
注意add函数和offer函数
public static void main(String[] args) {
Queue<Integer> queue = new LinkedList<>();
queue.add(1);//添加元素
queue.add(2);//添加元素
queue.add(3);//添加元素
queue.offer(4);//添加元素
queue.offer(5);//添加元素
queue.offer(6);//添加元素
System.out.println(queue.peek());//获取对头元素,但是不删除
System.out.println(queue.element());//获取对头元素,但是不删除
System.out.println(queue.poll());//获取对头元素,并且删除对头元素
System.out.println(queue.remove());//获取对头元素,并且删除对头元素
}
2.2、Deque
public static void main(String[] args) {
Deque<Integer> deque = new LinkedList<>();
deque.add(1);//默认在队尾添加元素
deque.addFirst(2);//在对头添加元素
deque.addLast(3);//在队尾添加元素
deque.offer(4);//在队尾添加元素
deque.offerLast(5);//在队尾添加元素
deque.offerFirst(6);//在队头添加元素
System.out.println(deque);
System.out.println(deque.peek());//获取元素,但是不删除
System.out.println(deque.peekFirst());//获取队头元素,但是不删除
System.out.println(deque.peekLast());//获取队尾元素,但是不删除
System.out.println(deque.poll());//获取队头元素,并且删除
System.out.println(deque.