- Параметры типа
E- тип элементов, хранящихся в этой коллекции. Все реализованные интерфейсы
Serializable,Cloneable,Iterable<E>,Collection<E>,Deque<E>,List<E>,Queue<E>
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этого класса, работают по принципу fail-fast. Если после создания итератора список структурно изменяется любым способом, кроме вызова собственных методовremoveилиaddитератора, итератор выбрасываетConcurrentModificationException. Поэтому при параллельном изменении итератор быстро и чисто завершается с ошибкой, а не рискует произвольным недетерминированным поведением в неопределённый момент в будущем.Обратите внимание, что поведение fail-fast итератора не гарантируется. В общем случае при несинхронизированном параллельном изменении невозможно дать жёсткие гарантии. Итератор с fail-fast выбрасывает
ConcurrentModificationExceptionв режиме наилучшего усилия. Поэтому писать программы, корректность которых зависит от этого исключения, ошибочно. Поведение fail-fast итератора предназначено только для обнаружения ошибок.
-
-
字段汇总
-
声明的属性在类 java.util.AbstractList
modCount
-
-
构造方法摘要
构造方法 构造器 Описание LinkedList()Создаёт пустой список.LinkedList(Collection<? extends E> c)Создаёт список с элементами указанной коллекции в порядке, который возвращает её итератор.
-
方法摘要
所有方法 实例方法 具体的方法 变量和类型 方法 Описание voidadd(int index, E element)Вставляет указанный элемент в указанную позицию этого списка.booleanadd(E e)Добавляет указанный элемент в конец этого списка.booleanaddAll(int index, Collection<? extends E> c)Вставляет все элементы указанной коллекции в этот список, начиная с указанной позиции.booleanaddAll(Collection<? extends E> c)Добавляет все элементы указанной коллекции в конец этого списка в порядке, который возвращает её итератор.voidaddFirst(E e)Вставляет указанный элемент в начало этого списка.voidaddLast(E e)Добавляет указанный элемент в конец этого списка.voidclear()Удаляет все элементы из этого списка.Objectclone()Возвращает поверхностную копию этогоLinkedList.booleancontains(Object o)Возвращаетtrue。Iterator<E>descendingIterator()Возвращает итератор по элементам этой очереди в обратном порядке.Eelement()Извлекает, но не удаляет голову (первый элемент) этого списка.Eget(int index)Возвращает элемент из этого списка по указанной позиции.EgetFirst()Возвращает первый элемент этого списка.EgetLast()Возвращает последний элемент этого списка.intindexOf(Object o)Возвращает индекс первого вхождения указанного элемента в этот список. Если список не содержит элемент, возвращает -1.intlastIndexOf(Object o)Возвращает индекс последнего вхождения указанного элемента в этот список. Если список не содержит элемент, возвращает -1.ListIterator<E>listIterator(int index)Возвращает итератор списка элементов этого списка, начиная с указанной позиции, в правильном порядке.booleanoffer(E e)Добавляет указанный элемент в конец этого списка как последний элемент.booleanofferFirst(E e)Вставляет указанный элемент в начало этого списка.booleanofferLast(E e)Вставляет указанный элемент в конец этого списка.Epeek()Извлекает, но не удаляет голову этого списка, то есть первый элемент.EpeekFirst()Извлекает, но не удаляет первый элемент этого списка. Если список пуст, возвращаетnull。EpeekLast()Извлекает, но не удаляет последний элемент этого списка. Если список пуст, возвращаетnull。Epoll()Извлекает и удаляет голову этого списка, то есть первый элемент.EpollFirst()Извлекает и удаляет первый элемент этого списка. Если список пуст, возвращаетnull。EpollLast()Извлекает и удаляет последний элемент этого списка. Если список пуст, возвращаетnull。Epop()Извлекает элемент из стека, который представляет этот список.voidpush(E e)Помещает элемент в стек, который представляет этот список.Eremove()Извлекает и удаляет голову этого списка, то есть первый элемент.Eremove(int index)Удаляет элемент из этого списка по указанной позиции.booleanremove(Object o)Удаляет первое вхождение указанного элемента из этого списка, если оно существует.EremoveFirst()Удаляет и возвращает первый элемент этого списка.booleanremoveFirstOccurrence(Object o)Удаляет первое вхождение указанного элемента из этого списка при обходе списка от начала до конца.EremoveLast()Удаляет и возвращает последний элемент этого списка.booleanremoveLastOccurrence(Object o)Удаляет последнее вхождение указанного элемента из этого списка при обходе списка от начала до конца.Eset(int index, E element)Заменяет элемент в этом списке по указанной позиции на указанный элемент.intsize()Возвращает количество элементов в этом списке.Spliterator<E>spliterator()Создаёт late-binding и отказоустойчивыйSpliteratorитератор по элементам этого списка.Object[]toArray()Возвращает массив, содержащий все элементы этого списка, в правильном порядке от первого элемента до последнего.<T> T[]toArray(T[] a)Возвращает массив, содержащий все элементы этого списка, в правильном порядке от первого элемента до последнего. Тип возвращённого массива во время выполнения совпадает с типом указанного массива.-
声明方法的类 java.util.AbstractSequentialList
iterator
-
声明方法的类 java.util.AbstractList
equals, hashCode, listIterator, removeRange, subList
-
声明方法的类 java.util.AbstractCollection
containsAll, isEmpty, removeAll, retainAll, toString
-
声明方法的接口 java.util.Collection
parallelStream, removeIf, stream, toArray
-
声明方法的接口 java.util.List
containsAll, equals, hashCode, isEmpty, iterator, listIterator, removeAll, replaceAll, retainAll, sort, subList
-
-
-
-
构造方法详细信息
-
LinkedList
public LinkedList()
Создаёт пустой список.
-
LinkedList
public LinkedList(Collection<? extends E> c)
Создаёт список с элементами указанной коллекции в порядке её итератора.- Параметры
c-cКоллекция, элементы которой помещаются в этот список. ИсключенияNullPointerException- если указанная коллекция равна null
-
-
方法详细信息
-
getFirst
public E getFirst()
Возвращает первый элемент этого списка.- Specified by:
getFirst在界面Deque<E>- Результат: первый элемент этого списка. Исключения
NoSuchElementException- если этот список пуст
-
getLast
public E getLast()
Возвращает последний элемент этого списка.- Specified by:
getLast在界面Deque<E>- Результат: последний элемент этого списка. Исключения
NoSuchElementException- если этот список пуст
-
removeFirst
public E removeFirst()
Удаляет и возвращает первый элемент этого списка.- Specified by:
removeFirstin interfaceDeque<E>- Результат: первый элемент этого списка. Исключения
NoSuchElementException- если этот список пуст
-
removeLast
public E removeLast()
Удаляет и возвращает последний элемент этого списка.- Specified by:
removeLast在界面Deque<E>- Результат: последний элемент этого списка. Исключения
NoSuchElementException- если этот список пуст
-
addFirst
public void addFirst(E e)
Вставляет указанный элемент в начало этого списка.
-
addLast
public void addLast(E e)
Добавляет указанный элемент в конец этого списка. Этот метод эквивалентен
-
contains
public boolean contains(Object o)
Возвращает значение, если этот список содержит указанный элементtrue. Точнее, возвращаетtrueтогда и только тогда, когда этот список содержит хотя бы один элементeтакой, чтоObjects.equals(o, e)。
-
size
public int size()
Возвращает количество элементов в этом списке.
-
add
public boolean add(E e)
Добавляет указанный элемент в конец этого списка. Этот метод эквивалентен
-
remove
public boolean remove(Object o)
Удаляет из этого списка первое вхождение указанного элемента, если оно есть. Если список не содержит этот элемент, он не изменяется. Точнее, удаляется элемент с наименьшим индексомiтаким, чтоObjects.equals(o, get(i))(если такой элемент есть). Если список содержит указанный элемент, возвращаетtrue(или, что эквивалентно, если список изменился в результате вызова).
-
addAll
public boolean addAll(Collection<? extends E> c)
Добавляет все элементы из указанной коллекции в конец этого списка в порядке, который возвращает итератор этой коллекции. Если указанная коллекция изменяется во время операции, поведение не определено. (Обратите внимание, что это произойдет, если указанная коллекция является этим списком и он не пуст.)- Specified by:
addAll在界面Collection<E>- Specified by:
addAll在界面Deque<E>- Specified by:
addAll在界面List<E>- Переопределяет:
addAll在类AbstractCollection<E>- Параметры
c- коллекция, содержащая элементы, которые нужно добавить в этот список. РезультатtrueЕсли этот список изменился из-за вызова, исключениеNullPointerException- если указанная коллекция равна null. См. также:AbstractCollection.add(Object)
-
addAll
public boolean addAll(int index, Collection<? extends E> c)Вставляет все элементы из указанной коллекции в этот список, начиная с указанной позиции. Сдвигает текущий элемент в этой позиции и все последующие элементы вправо. Их индексы увеличиваются. Новые элементы появляются в списке в порядке, который возвращает итератор указанной коллекции.- Specified by:
addAllin interfaceList<E>- Переопределяет:
addAll在类AbstractSequentialList<E>- Параметры
index- индекс, по которому вставляется первый элемент из указанной коллекцииc- коллекция, содержащая элементы для добавления в этот список. РезультатtrueЕсли этот список изменился из-за вызова, исключениеIndexOutOfBoundsException- 如果指数超出范围(index < 0 || index > size())NullPointerException- если указанная коллекция равна null
-
clear
public void clear()
Удаляет все элементы из этого списка. После возврата из этого вызова список будет пуст.- Specified by:
clear在界面Collection<E>- Specified by:
clear在界面List<E>- Переопределяет:
clear类AbstractList<E>
-
get
public E get(int index)
Возвращает элемент из этого списка в указанной позиции.- Specified by:
getin interfaceList<E>- Переопределяет:
get类AbstractSequentialList<E>- Параметры
index- индекс элемента, который нужно вернуть. Результат: элемент из этого списка в указанной позиции. ИсключениеIndexOutOfBoundsException- 如果指数超出范围(index < 0 || index >= size())
-
set
public E set(int index, E element)
Заменяет элемент в указанной позиции этого списка на указанный элемент.- Specified by:
setin interfaceList<E>- Переопределяет:
set在类AbstractSequentialList<E>- Параметры
index- индекс заменяемого элементаelement- элемент, который нужно сохранить в указанной позиции. Результат: элемент, ранее находившийся в указанной позиции. ИсключениеIndexOutOfBoundsException- 如果指数超出范围(index < 0 || index >= size())
-
add
public void add(int index, E element)Вставляет указанный элемент в указанную позицию этого списка. Сдвигает текущий элемент (если он есть) и все последующие элементы вправо (добавляет единицу к индексу).- Specified by:
add在界面List<E>- Переопределяет:
add类AbstractSequentialList<E>- Параметры
index- индекс, по которому нужно вставить указанный элементelement- 要插入的元素- 异常
-
IndexOutOfBoundsException- 如果指数超出范围(index < 0 || index > size())
-
remove
public E remove(int index)
Удаляет элемент в указанной позиции этого списка. Сдвигает все последующие элементы влево (вычитает единицу из индекса). Возвращает элемент, удалённый из списка.- Specified by:
remove在界面List<E>- Переопределяет:
remove在类AbstractSequentialList<E>- Параметры
index- индекс удаляемого элемента. Результат: элемент, ранее находившийся в указанной позиции. ИсключениеIndexOutOfBoundsException- если индекс выходит за пределы диапазона (index < 0 || index >= size())
-
indexOf
public int indexOf(Object o)
Возвращает индекс первого вхождения указанного элемента в этот список. Если список не содержит этот элемент, возвращает -1. Точнее, возвращает наименьший индексi如Objects.equals(o, get(i)), если такого индекса нет, возвращает -1.
-
lastIndexOf
public int lastIndexOf(Object o)
Возвращает индекс последнего вхождения указанного элемента в этот список. Если список не содержит этот элемент, возвращает -1. Точнее, возвращает наибольший индексi如Objects.equals(o, get(i)), если такого индекса нет, возвращает -1.- Specified by:
lastIndexOf在界面List<E>- Переопределение:
lastIndexOf在类AbstractList<E>- Параметры
o- искомый элемент. Результат: индекс последнего вхождения элемента в этот список. Если список не содержит элемент, возвращается -1.
-
peek
public E peek()
Извлекает, но не удаляет голову этого списка (первый элемент).
-
element
public E element()
Извлекает, но не удаляет голову этого списка (первый элемент).
-
poll
public E poll()
Извлекает и удаляет голову этого списка (первый элемент).
-
remove
public E remove()
Извлекает и удаляет голову этого списка (первый элемент).
-
offer
public boolean offer(E e)
Добавляет указанный элемент в конец этого списка (последним элементом).
-
offerFirst
public boolean offerFirst(E e)
Вставляет указанный элемент в начало этого списка.- Specified by:
offerFirst在接口Deque<E>- Параметры
e- вставляемый элемент Возвращаетtrue(указано вDeque.offerFirst(E)) Начиная с версии: 1.6
-
offerLast
public boolean offerLast(E e)
Вставляет указанный элемент в конец этого списка.- Specified by:
offerLast在界面Deque<E>- Параметры
e- вставляемый элемент Возвращаетtrue(указано вDeque.offerLast(E)) Начиная с версии: 1.6
-
peekFirst
public E peekFirst()
Извлекает, но не удаляет первый элемент этого списка. Если список пуст, возвращаетnull。
-
peekLast
public E peekLast()
Извлекает, но не удаляет последний элемент этого списка. Если список пуст, возвращаетnull。
-
pollFirst
public E pollFirst()
Извлекает и удаляет первый элемент этого списка. Если список пуст, возвращаетnull。
-
pollLast
public E pollLast()
Извлекает и удаляет последний элемент этого списка. Если список пуст, возвращаетnull。
-
push
public void push(E e)
Помещает элемент в стек, который представляет этот список. Иначе говоря, вставляет элемент в начало этого списка. Этот метод эквивалентен
-
pop
public E pop()
Извлекает элемент из стека, который представляет этот список. Иначе говоря, удаляет и возвращает первый элемент этого списка. Этот метод эквивалентен- Specified by:
pop在接口Deque<E>- Возвращает элемент из начала этого списка (вершину стека, который представляет этот список) Исключения
NoSuchElementException- если этот список пуст Начиная с версии: 1.6
-
removeFirstOccurrence
public boolean removeFirstOccurrence(Object o)
Удаляет первое вхождение указанного элемента в этом списке (при обходе списка от начала до конца). Если список не содержит этот элемент, он не изменяется.- Specified by:
removeFirstOccurrence在界面Deque<E>- Параметры
o- элемент для удаления из этого списка, если он присутствует Возвращаетtrueзначение true, если список содержит указанный элемент Начиная с версии: 1.6
-
removeLastOccurrence
public boolean removeLastOccurrence(Object o)
Удаляет последнее вхождение указанного элемента в этом списке (при обходе списка от начала до конца). Если список не содержит этот элемент, он не изменяется.- Specified by:
removeLastOccurrence在界面Deque<E>- Параметры
o- элемент для удаления из этого списка, если он присутствует Возвращаетtrueзначение true, если список содержит указанный элемент Начиная с версии: 1.6
-
listIterator
public ListIterator<E> listIterator(int index)
Возвращает итератор списка элементов этого списка, начиная с указанной позиции (в правильном порядке).List.listIterator(int)Общий контракт:List.listIterator(int). List-iterator является отказоустойчивым (fail-fast): если после создания Iterator список структурно изменяется любым способом, кроме вызова собственных методовremoveилиaddlist-iterator, он выбрасываетConcurrentModificationException. Поэтому при конкурентном изменении итератор быстро и чисто завершается с ошибкой, а не рискует произвольным недетерминированным поведением в неопределённый момент в будущем.- Определено в:
listIterator在界面List<E>- Определено в:
listIterator在类AbstractSequentialList<E>- Параметры
index- индекс первого элемента, возвращаемого list-iterator (при вызовеnext) Результат ListIterator элементов этого списка (в правильном порядке), начиная с указанной позиции в списке ИсключенияIndexOutOfBoundsException- 如果指数超出范围(index < 0 || index > size()) Смотрите также:List.listIterator(int)
-
descendingIterator
public Iterator<E> descendingIterator()
Скопировано описание из интерфейса:DequeВозвращает итератор по элементам этой двухсторонней очереди в обратном порядке. Элементы возвращаются от последнего (хвоста) к первому (голове).- Определено в:
descendingIterator在界面Deque<E>- Результат итератор, обходящий элементы этой двухсторонней очереди в обратном порядке Начиная с версии: 1.6
-
clone
public Object clone()
Возвращает поверхностную копию этогоLinkedList. (Сами элементы не клонируются.)
-
toArray
public Object[] toArray()
Возвращает массив, содержащий все элементы этого списка, в правильном порядке (от первого элемента к последнему). Возвращённый массив «безопасен», так как этот список не сохраняет ссылку на него. (Иначе говоря, этот метод выделяет новый массив.) Поэтому вызывающий может свободно изменять возвращённый массив.Этот метод служит мостом между API на основе массивов и API на основе коллекций.
- Определено в:
toArray在界面Collection<E>- Определено в:
toArray在界面List<E>- Переопределяет:
toArray在类AbstractCollection<E>- Результат массив, содержащий все элементы этого списка в правильном порядке Смотрите также:
Arrays.asList(Object[])
-
toArray
public <T> T[] toArray(T[] a)
Возвращает массив, содержащий все элементы этого списка в правильном порядке (от первого элемента к последнему); тип возвращённого массива во время выполнения совпадает с типом указанного массива. Если список помещается в указанный массив, он возвращается в нём. Иначе выделяется новый массив с типом указанного массива во время выполнения и размером этого списка. Если список помещается в указанный массив и в нём остаётся свободное место (то есть массив содержит больше элементов, чем список), то элементы массива, следующие сразу за концом списка, устанавливаются вnull。 (Это полезно при определении длины списка, но только если вызывающий знает, что список не содержит элементов null.)Как и
toArray()метод, этот метод служит мостом между API на основе массивов и API на основе коллекций. Кроме того, этот метод позволяет точно управлять типом времени выполнения выходного массива. В некоторых случаях это экономит затраты на выделение памяти.Предположим,
xэто список, который, как известно, содержит только строки. Следующий код выгружает список в новый выделенныйStringмассив:String[] y = x.toArray(new String[0]);Обратите внимание,toArray(new Object[0])функциональностьtoArray()。- Specified by:
toArray在界面Collection<E>- Specified by:
toArray在界面List<E>- Переопределяет:
toArray在类AbstractCollection<E>- Параметры типа
T- тип компонентов массива, содержащего коллекцию. Параметрa- массив, в который сохраняются элементы списка, если он достаточно большой. Иначе для этой цели выделяется новый массив того же типа времени выполнения. Результат массив, содержащий элементы списка. ИсключениеArrayStoreException- если тип времени выполнения указанного массива не является надтипом типа времени выполнения каждого элемента этого спискаNullPointerException- если указанный массив равен null
-
spliterator
public Spliterator<E> spliterator()
Создаёт late-binding и отказоустойчивыйSpliteratorнад элементами этого списка.SpliteratorСообщаетSpliterator.SIZEDиSpliterator.ORDERED. Переопределяющие реализации должны документировать сообщение дополнительных значений характеристик.- Specified by:
spliterator在界面Collection<E>- Specified by:
spliterator在界面Iterable<E>- Specified by:
spliterator在界面List<E>- Implementation Note:
SpliteratorДополнительно сообщаетSpliterator.SUBSIZEDи реализуетtrySplitчтобы допустить ограниченный параллелизм. Результат над элементами этого списка.Spliterator- Начиная с версии: 1.8
-
-