Queue队列
程序员文章站
2024-03-19 23:10:52
...
Queue队列
队列是一种FIFO(First Input First Output、先进先出)的线性数据结构,所有的数据通过队列尾部进行添加,而后再通过队列前端进行取出
Queue接口常用方法
范例:使用Queue实现队列存储
package com.lxh.eighteenchapter;
import java.util.PriorityQueue;
import java.util.Queue;
public class avaCollectionDemo510 {
public static void main(String[] args) {
// PriorityQueue为优先级队列,会自动为队列中的数据进行排序操作,排列需要Comparable支持
Queue<String> queue=new PriorityQueue<>();
System.out.println(queue.add("张三")); // 队尾存储数据
System.out.println(queue.offer("李四"));// 队尾存储数据
System.out.println(queue.offer("王五"));// 队尾存储数据
System.out.println(queue.poll());//队首获取数据并删除
System.out.println(queue.poll());//队首获取数据并删除
System.out.println(queue.poll());//队首获取数据并删除
System.out.println(queue); // 此时为空队列
}
}
执行结果
true
true
true
张三
李四
王五
[]
Deque双端队列
从JDK 1.6开始为了方便队列操作,为Queue定义了一个Deque子接口,Deque接口的最大特点可以实现数据的FIFO与FILO(First Input Last Output、先进后出)操作,即:队尾和队首都可以进行数据操作
范例:范例:使用Deque实现双端队列操作
import java.util.Deque;
import java.util.LinkedList;
public class JavaCollectionDemo511 {
public static void main(String[] args) {
Deque<String> deque = new LinkedList<String>(); // 实例化Deque队列
deque.offer("张三"); // 队尾存储数据
deque.offerFirst("李四"); // 队首存储数据
deque.offerLast("王五"); // 队尾存储数据
System.out.println(deque); // 输出队列数据
System.out.println(deque.poll()); // 从队首获取数据并删除
}
}
执行结果
[李四, 张三, 王五]
李四