天天看點

LinkedList總結

簡介 

  • public class LinkedList<E>
    extends AbstractSequentialList<E>
    implements List<E>, Deque<E>, Cloneable, Serializable      
  • 雙連結清單實作了

    List

    Deque

    接口。 實作所有可選清單操作,并允許所有元素(包括

    null

    )。
  • 此實作不同步。 如果多個線程同時通路連結清單,并且至少有一個線程在結構上修改了清單,則必須在外部進行同步。 (結構修改是添加或删除一個或多個元素的任何操作;僅設定元素的值不是結構修改。)這通常通過同步自然封裝清單的某個對象來完成。 如果不存在此類對象,則應使用

    Collections.synchronizedList

    方法“包裝”該清單。 這最好在建立時完成,以防止意外地不同步通路清單:
    List list = Collections.synchronizedList(new LinkedList(...));      
  • 此類的

    iterator

    listIterator

    方法傳回的疊代器是快速失敗的 :如果在建立疊代器之後的任何時候對清單進行結構修改,除了通過Iterator自己的

    remove

    add

    方法之外,疊代器将抛出

    ConcurrentModificationException

    。 是以,在并發修改的情況下,疊代器快速而幹淨地失敗,而不是在未來的未确定時間冒任意,非确定性行為的風險。

 常用方法

LinkedList()

構造一個空清單。

LinkedList​(Collection<? extends E> c)

按照集合的疊代器傳回的順序構造一個包含指定集合元素的清單。

E

pop()

彈出此清單所代表的堆棧中的元素。

void

push​(E e)

将元素推送到此清單所表示的堆棧上。

void

addFirst​(E e)

在此清單的開頭插入指定的元素。

void

addLast​(E e)

将指定的元素追加到此清單的末尾。

E

getFirst()

傳回此清單中的第一個元素。

E

getLast()

傳回此清單中的最後一個元素。

E

removeFirst()

從此清單中删除并傳回第一個元素。

boolean

removeFirstOccurrence​(Object o)

删除此清單中第一次出現的指定元素(從頭到尾周遊清單時)。

E

removeLast()

從此清單中删除并傳回最後一個元素。

boolean

removeLastOccurrence​(Object o)

删除此清單中最後一次出現的指定元素(從頭到尾周遊清單時)。

boolean

offer​(E e)

将指定的元素添加為此清單的尾部(最後一個元素)。

boolean

offerFirst​(E e)

在此清單的前面插入指定的元素。

boolean

offerLast​(E e)

在此清單的末尾插入指定的元素。

E

peek()

檢索但不删除此清單的頭部(第一個元素)。

E

peekFirst()

檢索但不删除此清單的第一個元素,如果此清單為空,則傳回

null

E

peekLast()

檢索但不删除此清單的最後一個元素,如果此清單為空,則傳回

null

E

poll()

檢索并删除此清單的頭部(第一個元素)。

E

pollFirst()

檢索并删除此清單的第一個元素,如果此清單為空,則傳回

null

E

pollLast()

檢索并删除此清單的最後一個元素,如果此清單為空,則傳回

null