LinkedList是List接口的链接列表实现。

LinkedList可以当做列表、队列、栈、双端队列

除了实现了List的功能之外 还实现了Queue(Deque)队列接口

LinkedList本质上就是一个【双向循环链表】

优点:增删元素快

缺点:查改元素慢

LinkedList的方法

 E

set(int index, E           将此列表中指定位置的元素替换为指定的元素。

 int

size()           返回此列表的元素数。

 boolean

contains(Object           如果此列表包含指定元素,则返回 true。

 int

indexOf(Object           返回此列表中首次出现的指定元素的索引,如果此列表中不包含该元素,则返回 -1。

 int

lastIndexOf(Object           返回此列表中最后出现的指定元素的索引,如果此列表中不包含该元素,则返回 -1。

 Object[]

toArray()           返回以适当顺序(从第一个元素到最后一个元素)包含此列表中所有元素的数组。

1.LinkedList当做双端队列去用(都是对头尾操作的)

添加元素:

 boolean

add(E           将指定元素添加到此列表的结尾。

 void

add(int index, E           在此列表中指定的位置插入指定的元素。

 void

addFirst(E           将指定元素插入此列表的开头。

 void

addLast(E           将指定元素添加到此列表的结尾。

 boolean

offerFirst(E           在此列表的开头插入指定的元素。

 boolean

offerLast(E           在此列表末尾插入指定的元素。

 移除元素:

 E

pollFirst()           获取并移除此列表的第一个元素;如果此列表为空,则返回 null。

 E

pollLast()           获取并移除此列表的最后一个元素;如果此列表为空,则返回 null。

 E

remove()           获取并移除此列表的头(第一个元素)。

 E

remove(int index)           移除此列表中指定位置处的元素。

 boolean

remove(Object           从此列表中移除首次出现的指定元素(如果存在)。

 void

clear()           从此列表中移除所有元素。

获取元素:

 E

get(int index)           返回此列表中指定位置处的元素。

 E

getFirst()           返回此列表的第一个元素。

 E

getLast()           返回此列表的最后一个元素。

 E

peekFirst()           获取但不移除此列表的第一个元素;如果此列表为空,则返回 null。

 E

peekLast()           获取但不移除此列表的最后一个元素;如果此列表为空,则返回 null。

 E

element()           获取但不移除此列表的头(第一个元素)。

2.LinkedList用作队列

boolean

offer(E           将指定元素添加到此列表的末尾(最后一个元素)。

入队

 E

peek()           获取但不移除此列表的头(第一个元素)。

 

 E

poll()           获取并移除此列表的头(第一个元素)

出队

3.LinkedList用作栈

 E

pop()           从此列表所表示的堆栈处弹出一个元素。

出栈

 void

push(E           将元素推入此列表所表示的堆栈。

入栈