如图所示,可以得出LinkedList既可以是双向链表也可以是双端队列,Deque接口继承了Queue接口
Queue
- add(E):boolean 在队尾添加元素,添加成功返回true,如果队列已满无法添加则抛出异常。
- offer(E):boolean 在队尾添加元素,添加成功返回true,如果队列已满无法添加则返回false。
- remove():E 删除队头元素,并返回删除的元素,如果队列为null,抛出异常。
- poll():E 删除队头元素,并返回删除的元素,如果队列为null,返回null。
- element():E 获取队头元素,如果队列为null将抛出异常。
- peek():E 获取队头元素,如果队列为null将返回null。
Deque
Deque<Integer> deque = new LinkedList<>();
- addFirst(E):void 在队头添加元素。
- addLast(E):void 在队尾添加元素。
- offerFirst(E):boolean 在队头添加元素,并返回是否添加成功。
- offerLast(E):boolean 在队尾添加元素,并返回是否添加成功。
- removeFirst():E 删除队头元素,并返回删除的元素,如果队列为null,抛出异常。
- removeLast():E 删除队尾元素,并返回删除的元素,如果队列为null,抛出异常。
- pollFirst():E 删除队头元素,并返回删除的元素,如果队列为null,返回null。
- pollLast():E 删除队尾元素,并返回删除的元素,如果队列为null,返回null。
- getFirst():E 获取队头元素,如果队列为null将抛出异常。
- getLast():E 获取队尾元素,如果队列为null将抛出异常。
- peekFirst():E 获取队头元素,如果队列为null将返回null。
- peekLast():E 获取队尾元素,如果队列为null将返回null。
- removeFirstOccurrence(Object):boolean 删除第一次出现的指定元素,并返回是否删除成功。
- removeFirstOccurrence(Object):boolean 删除最后一次出现的指定元素,并返回是否删除成功。
List
创建方式:(可以实现双向链表和双端队列)
LinkedList list = new LinkedList(); //双向链表的创建
Deque<Integer> deque = new LinkedList<>(); //双端队列的创建
//队列方法:
list.add("A");
list.add("B");
list.add("C");
list.add("D");
list.addFirst("X"); //在头部添加元素
list.addLast("Z");
System.out.println(list);
list.removeFirst(); //移除元素
list.removeLast();
list.getFirst(); //获取元素
list.getLast();
list.isEmpty();