Queue 队列
队列是一个重要的数据结构,是一种特殊的线性表,特性是先进先出(FIFO)。
Java中的队列是一个接口(Interface),它的实现类有:LinkedList、PriorityQueue等。文档:https://docs.oracle.com/javase/10/docs/api/java/util/Queue.html
接口方法:
返回值 | 方法名 | 描述 |
---|---|---|
boolean | add() | 添加元素,成功返回true,失败会抛出异常 |
boolean | offer() | 添加元素,返回是否成功 |
Object | element() | 返回队列头部的元素,并不会删除这个元素,空队列时会抛出异常 |
Object | peek() | 返回队列头部的元素,并不会删除这个元素,如果是空队列,返回null |
Object | remove() | 移除队列头部的元素,并返回该元素,空队列时会抛出异常 |
Object | poll() | 移除队列头部的元素,并返回该元素,如果是空队列,返回null |
import java.util.LinkedList;
import java.util.Queue;
public class QueueDemo{
public static void main(String[] args) {
Queue<String> queue = new LinkedList<String>();
// 空队列取元素
try{
System.out.println(queue.element());
} catch (Exception e) {
System.out.println("空队列执行 element() " + e);
}
System.out.println("空队列执行 peek() " + queue.peek());
//添加元素
System.out.println("添加元素");
queue.offer("a");
queue.add("b");
queue.offer("c");
queue.add("d");
System.out.println("添加元素之后:" + queue);
System.out.println("peek() " + queue.peek());
System.out.println("element() " + queue.element());
// 移除元素
System.out.println("移除元素");
System.out.println("remove() " + queue.remove());
System.out.println("poll() " + queue.poll());
System.out.println("remove() " + queue.remove());
System.out.println("poll() " + queue.poll());
try{
System.out.println("remove() " + queue.remove());
} catch (Exception e) {
System.out.println("空队列执行 remove() " + e);
}
System.out.println("poll() " + queue.poll());
System.out.println("queue.size():" + queue.size());
}
}