(一) Queue接口及LinkedList实现

Queue接口与List、Set同一级别,都是继承了Collection接口。

Queue接口定义的6个方法:

添加元素:

add:添加失败,会抛异常

offer:添加失败,会返回false

删除元素:

remove:队列为空,会抛异常

poll:队列为空,会返回null

检查元素:

element:返回头部元素,不删除元素,队列为空,会抛异常

peek:返回头部元素,不删除元素,队列为空,会返回false

下面使用LinkedList作为Queue的实现例子

importjava.util.LinkedList;importjava.util.Queue;public classSimpleQueueTester {public static voidmain(String[] args) {
Queue queue = new LinkedList();//add()和remove()方法在失败的时候会抛出异常,不推荐//添加元素
queue.offer("A");
queue.offer("B");
queue.offer("C");//检查元素
System.out.println("peek : " +queue.peek());//返回第一个元素,并删除
System.out.println("poll : " +queue.poll());//查看Queue
queue.forEach(System.out::println);
}
}

(二) Deque接口及LinkedList实现

Deque是一个线性collection,支持在两端插入和移除元素。名称 deque 是“double ended queue(双端队列)”的缩写,通常读为“deck”。

同Queue接口一样,Deque提供插入、移除和检查元素的方法。

每种方法都存在两种形式:一种形式在操作失败时抛出异常,另一种形式返回一个特殊值(null 或 false,具体取决于操作)。

添加元素:

addFirst:第一个元素,添加失败,会抛异常

offeFirstr:第一个元素,添加失败,会返回false

addLast:最后一个元素,添加失败,会抛异常(方法等价于Queue接口add方法)

offerLast:最后一个元素,添加失败,会返回false(方法等价于Queue接口offer方法)

删除元素:

removeFirst:第一个元素,队列为空,会抛异常(方法等价于Queue接口remove方法)

pollFirst:第一个元素,队列为空,会返回null(方法等价于Queue接口poll方法)

removeLast:最后一个元素,队列为空,会抛异常

pollLast:最后一个元素,队列为空,会返回null

检查元素:

getFirst:返回头部元素,不删除元素,队列为空,会抛异常(方法等价于Queue接口element方法)

peekFirst:返回头部元素,不删除元素,队列为空,会返回false(方法等价于Queue接口peek方法)

getLast:返回头部元素,不删除元素,队列为空,会抛异常

peekLast:返回头部元素,不删除元素,队列为空,会返回false

下面使用LinkedList作为Deque的实现例子:

importjava.util.Deque;importjava.util.LinkedList;public classSimpleDequeTester {public static voidmain(String[] args) {
Deque deque = new LinkedList();//添加元素
deque.addLast("A");
deque.addLast("B");
deque.addFirst("C");
deque.forEach(System.out::println);//检查元素
System.out.println("first:" +deque.peekFirst());
System.out.println("last:" +deque.peekLast());//删除元素
System.out.println("deque poll : " +deque.pollFirst());
deque.forEach(System.out::println);
}
}