List
and Deque
interfaces. Implements all optional list operations, and permits all
elements (including null
).
All of the operations perform as could be expected for a doubly-linked list. Operations that index into the list will traverse the list from the beginning or the end, whichever is closer to the specified index.
Note that this implementation is not synchronized.
If multiple threads access a linked list concurrently, and at least
one of the threads modifies the list structurally, it must be
synchronized externally. (A structural modification is any operation
that adds or deletes one or more elements; merely setting the value of
an element is not a structural modification.) This is typically
accomplished by synchronizing on some object that naturally
encapsulates the list.
If no such object exists, the list should be "wrapped" using the
Collections.
method. This is best done at creation time, to prevent accidental
unsynchronized access to the list:
List list = Collections.synchronizedList(new LinkedList(...));
The iterators returned by this class's iterator
and
listIterator
methods are fail-fast: if the list is
structurally modified at any time after the iterator is created, in
any way except through the Iterator's own remove
or
add
methods, the iterator will throw a ConcurrentModificationException
. Thus, in the face of concurrent
modification, the iterator fails quickly and cleanly, rather than
risking arbitrary, non-deterministic behavior at an undetermined
time in the future.
Note that the fail-fast behavior of an iterator cannot be guaranteed
as it is, generally speaking, impossible to make any hard guarantees in the
presence of unsynchronized concurrent modification. Fail-fast iterators
throw ConcurrentModificationException
on a best-effort basis.
Therefore, it would be wrong to write a program that depended on this
exception for its correctness: the fail-fast behavior of iterators
should be used only to detect bugs.
This class is a member of the Java Collections Framework.
List
, ArrayList
Modifier and Type | Class and Description |
---|---|
private class | LinkedList.
Adapter to provide descending iterators via ListItr.previous |
private class | |
pack-priv static class | |
private static class | |
pack-priv static class |
Modifier and Type | Field and Description |
---|---|
pack-priv transient LinkedList. | first
Pointer to first node. |
pack-priv transient LinkedList. | last
Pointer to last node. |
private static final long | |
pack-priv transient int |
Access | Constructor and Description |
---|---|
public | |
public | LinkedList(Collection<? extends E>
the collection whose elements are to be placed into this list c)Constructs a list containing the elements of the specified collection, in the order they are returned by the collection's iterator. |
Modifier and Type | Method and Description |
---|---|
public boolean | add(E
element to be appended to this list e)Overrides java. Implements java. Appends the specified element to the end of this list. |
public void | add(int
index at which the specified element is to be inserted index, E element to be inserted element)Overrides java. Implements java. Inserts the specified element at the specified position in this list. |
public boolean | Returns: true if this list changed as a result of the callcollection containing elements to be added to this list c)Overrides java. Implements java. Appends all of the elements in the specified collection to the end of this list, in the order that they are returned by the specified collection's iterator. |
public boolean | Returns: true if this list changed as a result of the callindex at which to insert the first element
from the specified collection index, Collection<? extends E> collection containing elements to be added to this list c)Overrides java. Implements java. Inserts all of the elements in the specified collection into this list, starting at the specified position. |
public void | addFirst(E
the element to add e)Overrides default java. Implements java. Inserts the specified element at the beginning of this list. |
public void | addLast(E
the element to add e)Overrides default java. Implements java. Appends the specified element to the end of this list. |
private void | |
private void | |
public void | clear()
Overrides java. Implements java. Removes all of the elements from this list. |
public Object | Returns: a shallow copy of thisLinkedList instanceOverrides java. Returns a shallow copy of this |
public boolean | Returns: true if this list contains the specified elementelement whose presence in this list is to be tested o)Overrides java. Implements java. Returns |
public Iterator | descendingIterator()
Implements java. Returns an iterator over the elements in this deque in reverse sequential order. |
public E | Returns: the head of this listImplements java. Retrieves, but does not remove, the head (first element) of this list. |
public E | Returns: the element at the specified position in this listindex of the element to return index)Overrides java. Implements java. Returns the element at the specified position in this list. |
public E | Returns: the first element in this listOverrides default java. Implements java. Returns the first element in this list. |
public E | Returns: the last element in this listOverrides default java. Implements java. Returns the last element in this list. |
public int | Returns: the index of the first occurrence of the specified element in this list, or -1 if this list does not contain the elementelement to search for o)Overrides java. Implements java. Returns the index of the first occurrence of the specified element in this list, or -1 if this list does not contain the element. |
private boolean | |
private boolean | isPositionIndex(int index)
Tells if the argument is the index of a valid position for an iterator or an add operation. |
public int | Returns: the index of the last occurrence of the specified element in this list, or -1 if this list does not contain the elementelement to search for o)Overrides java. Implements java. Returns the index of the last occurrence of the specified element in this list, or -1 if this list does not contain the element. |
pack-priv void | |
private void | |
pack-priv void | |
public ListIterator | Returns: a ListIterator of the elements in this list (in proper sequence), starting at the specified position in the listindex of the first element to be returned from the
list-iterator (by a call to index)next )Implements abstract java. Implements java. Returns a list-iterator of the elements in this list (in proper sequence), starting at the specified position in the list. |
pack-priv LinkedList. | |
public boolean | offer(E
the element to add e)Implements java. Adds the specified element as the tail (last element) of this list. |
public boolean | offerFirst(E
the element to insert e)Implements java. Inserts the specified element at the front of this list. |
public boolean | offerLast(E
the element to insert e)Implements java. Inserts the specified element at the end of this list. |
private String | outOfBoundsMsg(int index)
Hides java. Constructs an IndexOutOfBoundsException detail message. |
public E | Returns: the head of this list, ornull if this list is emptyImplements java. Retrieves, but does not remove, the head (first element) of this list. |
public E | Returns: the first element of this list, ornull
if this list is emptyImplements java. Retrieves, but does not remove, the first element of this list,
or returns |
public E | Returns: the last element of this list, ornull
if this list is emptyImplements java. Retrieves, but does not remove, the last element of this list,
or returns |
public E | Returns: the head of this list, ornull if this list is emptyImplements java. Retrieves and removes the head (first element) of this list. |
public E | Returns: the first element of this list, ornull if
this list is emptyImplements java. Retrieves and removes the first element of this list,
or returns |
public E | Returns: the last element of this list, ornull if
this list is emptyImplements java. Retrieves and removes the last element of this list,
or returns |
public E | Returns: the element at the front of this list (which is the top of the stack represented by this list)Implements java. Pops an element from the stack represented by this list. |
public void | push(E
the element to push e)Implements java. Pushes an element onto the stack represented by this list. |
private void | readObject(ObjectInputStream s)
Reconstitutes this |
public boolean | Returns: true if this list contained the specified elementelement to be removed from this list, if present o)Overrides java. Implements java. Removes the first occurrence of the specified element from this list, if it is present. |
public E | Returns: the element previously at the specified positionthe index of the element to be removed index)Overrides java. Implements java. Removes the element at the specified position in this list. |
public E | Returns: the head of this listImplements java. Retrieves and removes the head (first element) of this list. |
public E | Returns: the first element from this listOverrides default java. Implements java. Removes and returns the first element from this list. |
public boolean | Returns: true if the list contained the specified elementelement to be removed from this list, if present o)Implements java. Removes the first occurrence of the specified element in this list (when traversing the list from head to tail). |
public E | Returns: the last element from this listOverrides default java. Implements java. Removes and returns the last element from this list. |
public boolean | Returns: true if the list contained the specified elementelement to be removed from this list, if present o)Implements java. Removes the last occurrence of the specified element in this list (when traversing the list from head to tail). |
public LinkedList | Returns: a reverse-ordered view of this collection, as aList Overrides default java. Returns a reverse-ordered view of this collection. |
public E | Returns: the element previously at the specified positionindex of the element to replace index, E element to be stored at the specified position element)Overrides java. Implements java. Replaces the element at the specified position in this list with the specified element. |
public int | Returns: the number of elements in this listImplements abstract java. Implements java. Returns the number of elements in this list. |
public Spliterator | Returns: aSpliterator over the elements in this listOverrides default java. Creates a late-binding
and fail-fast |
private LinkedList | |
public Object[] | Returns: an array containing all of the elements in this list in proper sequenceOverrides java. Implements java. Returns an array containing all of the elements in this list in proper sequence (from first to last element). |
public <T> T[] | Returns: an array containing the elements of the listthe array into which the elements of the list are to
be stored, if it is big enough; otherwise, a new array of the
same runtime type is allocated for this purpose. a)Overrides java. Implements java. Returns an array containing all of the elements in this list in proper sequence (from first to last element); the runtime type of the returned array is that of the specified array. |
pack-priv E | |
private E | |
private E | |
private void | writeObject(ObjectOutputStream s)
Saves the state of this |