Класс LinkedList<E>
- Параметры типа:
E— тип элементов, содержащихся в этой коллекции
- Все реализуемые интерфейсы:
Serializable, Cloneable, Iterable<E>, Collection<E>, Deque<E>, List<E>, Queue<E>, SequencedCollection<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 этого класса, являются быстроотказывающими: если после создания итератора список каким-либо образом структурно изменяется, кроме как с помощью собственных методов Iterator remove или add, итератор выбрасывает исключение ConcurrentModificationException. Таким образом, при параллельном изменении итератор быстро и корректно завершается с ошибкой, а не рискует привести к произвольному, недетерминированному поведению в неопределенный момент в будущем.
Обратите внимание, что гарантировать быстроотказывающее поведение итератора невозможно, поскольку, вообще говоря, при несинхронизированном параллельном изменении невозможно дать никаких строгих гарантий. Быстроотказывающие итераторы выбрасывают ConcurrentModificationException, прилагая все разумные усилия. Поэтому неправильно писать программу, корректность которой зависит от этого исключения: быстроотказывающее поведение итераторов следует использовать только для обнаружения ошибок.
Этот класс входит в состав Java Collections Framework.
- С версии:
- 1.2
- См. также:
Краткое описание полей
Поля, объявленные в классе AbstractList
modCount | Модификатор и тип | Поле | Описание |
|---|---|---|
protected int |
modCount |
Количество структурных изменений этого списка. |
Краткое описание конструкторов
| Конструктор | Описание |
|---|---|
LinkedList() |
Создает пустой список. |
LinkedList |
Создает список, содержащий элементы указанной коллекции в том порядке, в котором их возвращает итератор этой коллекции. |
Краткое описание методов
| Модификатор и тип | Метод | Описание |
|---|---|---|
void |
add |
Вставляет указанный элемент в указанную позицию этого списка. |
boolean |
add |
Добавляет указанный элемент в конец этого списка. |
boolean |
addAll |
Вставляет все элементы указанной коллекции в этот список, начиная с указанной позиции. |
boolean |
addAll |
Добавляет все элементы указанной коллекции в конец этого списка в том порядке, в котором их возвращает итератор указанной коллекции. |
void |
addFirst |
Вставляет указанный элемент в начало этого списка. |
void |
addLast |
Добавляет указанный элемент в конец этого списка. |
void |
clear() |
Удаляет все элементы из этого списка. |
Object |
clone() |
Возвращает поверхностную копию этого LinkedList. |
boolean |
contains |
Возвращает true, если этот список содержит указанный элемент. |
Iterator |
descendingIterator() |
Возвращает итератор элементов этой двусторонней очереди в обратном последовательном порядке. |
E |
element() |
Получает, но не удаляет начало (первый элемент) этого списка. |
E |
get |
Возвращает элемент, находящийся в указанной позиции этого списка. |
E |
getFirst() |
Возвращает первый элемент этого списка. |
E |
getLast() |
Возвращает последний элемент этого списка. |
int |
indexOf |
Возвращает индекс первого вхождения указанного элемента в этом списке или -1, если список не содержит этот элемент. |
int |
lastIndexOf |
Возвращает индекс последнего вхождения указанного элемента в этом списке или -1, если список не содержит этот элемент. |
ListIterator |
listIterator |
Возвращает итератор списка по элементам этого списка (в правильной последовательности), начиная с указанной позиции. |
boolean |
offer |
Добавляет указанный элемент в конец (последним элементом) этого списка. |
boolean |
offerFirst |
Вставляет указанный элемент в начало этого списка. |
boolean |
offerLast |
Вставляет указанный элемент в конец этого списка. |
E |
peek() |
Получает, но не удаляет начало (первый элемент) этого списка. |
E |
peekFirst() |
Получает, но не удаляет первый элемент этого списка или возвращает null, если список пуст. |
E |
peekLast() |
Получает, но не удаляет последний элемент этого списка или возвращает null, если список пуст. |
E |
poll() |
Получает и удаляет начало (первый элемент) этого списка. |
E |
pollFirst() |
Получает и удаляет первый элемент этого списка или возвращает null, если список пуст. |
E |
pollLast() |
Получает и удаляет последний элемент этого списка или возвращает null, если список пуст. |
E |
pop() |
Извлекает элемент из стека, представленным этим списком. |
void |
push |
Помещает элемент в стек, представленный этим списком. |
E |
remove() |
Получает и удаляет начало (первый элемент) этого списка. |
E |
remove |
Удаляет элемент, находящийся в указанной позиции этого списка. |
boolean |
remove |
Удаляет первое вхождение указанного элемента из этого списка, если он присутствует. |
E |
removeFirst() |
Удаляет и возвращает первый элемент этого списка. |
boolean |
removeFirstOccurrence |
Удаляет первое вхождение указанного элемента в этом списке (при обходе списка от начала к концу). |
E |
removeLast() |
Удаляет и возвращает последний элемент этого списка. |
boolean |
removeLastOccurrence |
Удаляет последнее вхождение указанного элемента в этом списке (при обходе списка от начала к концу). |
LinkedList |
reversed() |
Возвращает представление view этой коллекции в обратном порядке. |
E |
set |
Заменяет элемент, находящийся в указанной позиции этого списка, указанным элементом. |
int |
size() |
Возвращает количество элементов в этом списке. |
Spliterator |
spliterator() |
Создает поздно связывающийся и быстроотказывающий Spliterator для элементов этого списка. |
Object[] |
toArray() |
Возвращает массив, содержащий все элементы этого списка в правильной последовательности (от первого до последнего элемента). |
<T> T[] |
toArray |
Возвращает массив, содержащий все элементы этого списка в правильной последовательности (от первого до последнего элемента); тип возвращаемого массива во время выполнения совпадает с типом указанного массива. |
Методы, объявленные в классе AbstractSequentialList
iterator | Модификатор и тип | Метод | Описание |
|---|---|---|
Iterator |
iterator() |
Возвращает итератор по элементам этого списка (в правильной последовательности). |
Методы, объявленные в классе AbstractList
equals, hashCode, listIterator, removeRange, subList | Модификатор и тип | Метод | Описание |
|---|---|---|
boolean |
equals |
Сравнивает указанный объект с этим списком на равенство. |
int |
hashCode() |
Возвращает значение хеш-кода этого списка. |
ListIterator |
listIterator() |
Возвращает итератор списка по элементам этого списка (в правильной последовательности). |
protected void |
removeRange |
Удаляет из этого списка все элементы, индексы которых находятся в диапазоне от fromIndex включительно до toIndex не включительно. |
List |
subList |
Возвращает представление части этого списка между указанными fromIndex (включительно) и toIndex (не включительно). |
Методы, объявленные в классе AbstractCollection
containsAll, isEmpty, removeAll, retainAll, toString | Модификатор и тип | Метод | Описание |
|---|---|---|
boolean |
containsAll |
Возвращает true, если эта коллекция содержит все элементы указанной коллекции. |
boolean |
isEmpty() |
Возвращает true, если эта коллекция не содержит элементов. |
boolean |
removeAll |
Удаляет из этой коллекции все элементы, которые также содержатся в указанной коллекции (необязательная операция). |
boolean |
retainAll |
Оставляет в этой коллекции только элементы, содержащиеся в указанной коллекции (необязательная операция). |
String |
toString() |
Возвращает строковое представление этой коллекции. |
Методы, объявленные в классе Object
finalize, getClass, notify, notifyAll, wait, wait, wait | Модификатор и тип | Метод | Описание |
|---|---|---|
protected void |
finalize() |
Устарело, будет удалено: этот элемент API подлежит удалению в будущей версии. Финализация объявлена устаревшей и подлежит удалению в одном из будущих выпусков. |
final Class |
getClass() |
Возвращает класс этого Object во время выполнения. |
final void |
notify() |
Пробуждает один поток, ожидающий на мониторе этого объекта. |
final void |
notifyAll() |
Пробуждает все потоки, ожидающие на мониторе этого объекта. |
final void |
wait() |
Заставляет текущий поток ожидать пробуждения, обычно вследствие уведомления или прерывания. |
final void |
wait |
Заставляет текущий поток ожидать пробуждения, обычно вследствие уведомления или прерывания, либо до истечения заданного промежутка реального времени. |
final void |
wait |
Заставляет текущий поток ожидать пробуждения, обычно вследствие уведомления или прерывания, либо до истечения заданного промежутка реального времени. |
Методы, объявленные в интерфейсе Collection
parallelStream, removeIf, stream, toArray | Модификатор и тип | Метод | Описание |
|---|---|---|
default Stream |
parallelStream() |
Возвращает, возможно, параллельный Stream, источником которого является эта коллекция. |
default boolean |
removeIf |
Удаляет все элементы этой коллекции, удовлетворяющие заданному предикату (необязательная операция). |
default Stream |
stream() |
Возвращает последовательный Stream, источником которого является эта коллекция. |
default <T> T[] |
toArray |
Возвращает массив, содержащий все элементы этой коллекции; для выделения возвращаемого массива используется предоставленная функция generator. |
Методы, объявленные в интерфейсе Deque
iterator | Модификатор и тип | Метод | Описание |
|---|---|---|
Iterator |
iterator() |
Возвращает итератор по элементам этой двусторонней очереди в правильной последовательности. |
Методы, объявленные в интерфейсе Iterable
forEach | Модификатор и тип | Метод | Описание |
|---|---|---|
default void |
forEach |
Выполняет заданное действие для каждого элемента Iterable, пока не будут обработаны все элементы или действие не выбросит исключение. |
Методы, объявленные в интерфейсе List
containsAll, isEmpty, removeAll, replaceAll, retainAll, sort | Модификатор и тип | Метод | Описание |
|---|---|---|
boolean |
containsAll |
Возвращает true, если этот список содержит все элементы указанной коллекции. |
boolean |
isEmpty() |
Возвращает true, если этот список не содержит элементов. |
boolean |
removeAll |
Удаляет из этого списка все элементы, содержащиеся в указанной коллекции (необязательная операция). |
default void |
replaceAll |
Заменяет каждый элемент этого списка результатом применения оператора к этому элементу (необязательная операция). |
boolean |
retainAll |
Оставляет в этом списке только элементы, содержащиеся в указанной коллекции (необязательная операция). |
default void |
sort |
Сортирует этот список в соответствии с порядком, задаваемым указанным Comparator (необязательная операция). |
Подробное описание конструкторов
LinkedList
public LinkedList()
LinkedList
public LinkedList(Collection<? extends E> c)
- Параметры:
-
c— коллекция, элементы которой необходимо поместить в этот список - Исключения:
-
NullPointerException— если указанная коллекция равна null
Подробное описание методов
getFirst
public E getFirst()
- Определено в:
-
getFirstв интерфейсеDeque<E> - Определено в:
-
getFirstв интерфейсеList<E> - Определено в:
-
getFirstв интерфейсеSequencedCollection<E> - Возвращает:
- первый элемент этого списка
- Исключения:
-
NoSuchElementException— если этот список пуст
getLast
public E getLast()
- Определено в:
-
getLastв интерфейсеDeque<E> - Определено в:
-
getLastв интерфейсеList<E> - Определено в:
-
getLastв интерфейсеSequencedCollection<E> - Возвращает:
- последний элемент этого списка
- Исключения:
-
NoSuchElementException— если этот список пуст
removeFirst
public E removeFirst()
- Определено в:
-
removeFirstв интерфейсеDeque<E> - Определено в:
-
removeFirstв интерфейсеList<E> - Определено в:
-
removeFirstв интерфейсеSequencedCollection<E> - Возвращает:
- первый элемент этого списка
- Исключения:
-
NoSuchElementException— если этот список пуст
removeLast
public E removeLast()
- Определено в:
-
removeLastв интерфейсеDeque<E> - Определено в:
-
removeLastв интерфейсеList<E> - Определено в:
-
removeLastв интерфейсеSequencedCollection<E> - Возвращает:
- последний элемент этого списка
- Исключения:
-
NoSuchElementException— если этот список пуст
addFirst
addLast
contains
public boolean contains(Object o)
true, если этот список содержит указанный элемент. Точнее говоря, возвращает true тогда и только тогда, когда этот список содержит хотя бы один элемент e, такой что Objects.equals(o, e).- Определено в:
-
containsв интерфейсеCollection<E> - Определено в:
-
containsв интерфейсеDeque<E> - Определено в:
-
containsв интерфейсеList<E> - Переопределяет:
-
containsв классеAbstractCollection<E> - Параметры:
-
o— элемент, наличие которого в этом списке необходимо проверить - Возвращает:
-
true, если этот список содержит указанный элемент
size
add
public boolean add(E e)
Этот метод эквивалентен addLast(E).
- Определено в:
-
addв интерфейсеCollection<E> - Определено в:
-
addв интерфейсеDeque<E> - Определено в:
-
addв интерфейсеList<E> - Определено в:
-
addв интерфейсеQueue<E> - Переопределяет:
-
addв классеAbstractList<E> - Параметры:
-
e— элемент, который необходимо добавить в конец этого списка - Возвращает:
-
true(как указано вCollection.add(E))
remove
public boolean remove(Object o)
i, такой что Objects.equals(o, get(i)) (если такой элемент существует). Возвращает true, если этот список содержал указанный элемент (или, что равнозначно, если список изменился в результате вызова).- Определено в:
-
removeв интерфейсеCollection<E> - Определено в:
-
removeв интерфейсеDeque<E> - Определено в:
-
removeв интерфейсеList<E> - Переопределяет:
-
removeв классеAbstractCollection<E> - Параметры:
-
o— элемент, который необходимо удалить из этого списка, если он присутствует - Возвращает:
-
true, если этот список содержал указанный элемент
addAll
public boolean addAll(Collection<? extends E> c)
- Определено в:
-
addAllв интерфейсеCollection<E> - Определено в:
-
addAllв интерфейсеDeque<E> - Определено в:
-
addAllв интерфейсеList<E> - Переопределяет:
-
addAllв классеAbstractCollection<E> - Параметры:
-
c— коллекция, содержащая элементы, которые необходимо добавить в этот список - Возвращает:
-
true, если список изменился в результате вызова - Исключения:
-
NullPointerException— если указанная коллекция равна null - См. также:
addAll
public boolean addAll(int index, Collection<? extends E> c)
- Определено в:
-
addAllв интерфейсеList<E> - Переопределяет:
-
addAllв классеAbstractSequentialList<E> - Параметры:
-
index— индекс, в который следует вставить первый элемент указанной коллекции -
c— коллекция, содержащая элементы, которые необходимо добавить в этот список - Возвращает:
-
true, если список изменился в результате вызова - Исключения:
-
IndexOutOfBoundsException— если индекс выходит за допустимый диапазон (index < 0 || index > size()) -
NullPointerException— если указанная коллекция равна null
clear
public void clear()
- Определено в:
-
clearв интерфейсеCollection<E> - Определено в:
-
clearв интерфейсеList<E> - Переопределяет:
-
clearв классеAbstractList<E>
get
public E get(int index)
- Определено в:
-
getв интерфейсеList<E> - Переопределяет:
-
getв классеAbstractSequentialList<E> - Параметры:
-
index— индекс возвращаемого элемента - Возвращает:
- элемент, находящийся в указанной позиции этого списка
- Исключения:
-
IndexOutOfBoundsException— если индекс выходит за допустимый диапазон (index < 0 || index >= size())
set
public E set(int index, E element)
- Определено в:
-
setв интерфейсеList<E> - Переопределяет:
-
setв классеAbstractSequentialList<E> - Параметры:
-
index— индекс заменяемого элемента -
element— элемент, который будет сохранен в указанной позиции - Возвращает:
- элемент, ранее находившийся в указанной позиции
- Исключения:
-
IndexOutOfBoundsException— если индекс выходит за допустимый диапазон (index < 0 || index >= size())
add
public void add(int index, E element)
- Определено в:
-
addв интерфейсеList<E> - Переопределяет:
-
addв классеAbstractSequentialList<E> - Параметры:
-
index— индекс, в который необходимо вставить указанный элемент -
element— вставляемый элемент - Исключения:
-
IndexOutOfBoundsException— если индекс выходит за допустимый диапазон (index < 0 || index > size())
remove
public E remove(int index)
- Определено в:
-
removeв интерфейсеList<E> - Переопределяет:
-
removeв классеAbstractSequentialList<E> - Параметры:
-
index— индекс удаляемого элемента - Возвращает:
- элемент, ранее находившийся в указанной позиции
- Исключения:
-
IndexOutOfBoundsException— если индекс выходит за допустимый диапазон (index < 0 || index >= size())
indexOf
public int indexOf(Object o)
i, такой что Objects.equals(o, get(i)), или -1, если такого индекса нет.lastIndexOf
public int lastIndexOf(Object o)
i, такой что Objects.equals(o, get(i)), или -1, если такого индекса нет.- Определено в:
-
lastIndexOfв интерфейсеList<E> - Переопределяет:
-
lastIndexOfв классеAbstractList<E> - Параметры:
-
o— искомый элемент - Возвращает:
- индекс последнего вхождения указанного элемента в этом списке или -1, если список не содержит этот элемент
peek
element
poll
remove
offer
offerFirst
public boolean offerFirst(E e)
- Определено в:
-
offerFirstв интерфейсеDeque<E> - Параметры:
-
e— вставляемый элемент - Возвращает:
-
true(как указано вDeque.offerFirst(E)) - Начиная с версии:
- 1.6
offerLast
public boolean offerLast(E e)
- Определено в:
-
offerLastв интерфейсеDeque<E> - Параметры:
-
e— вставляемый элемент - Возвращает:
-
true(как указано вDeque.offerLast(E)) - Начиная с версии:
- 1.6
peekFirst
peekLast
pollFirst
pollLast
push
public void push(E e)
Этот метод эквивалентен addFirst(E).
pop
public E pop()
Этот метод эквивалентен removeFirst().
- Определено в:
-
popв интерфейсеDeque<E> - Возвращает:
- элемент в начале этого списка (то есть вершину стека, представленного этим списком)
- Исключения:
-
NoSuchElementException— если этот список пуст - Начиная с версии:
- 1.6
removeFirstOccurrence
public boolean removeFirstOccurrence(Object o)
- Определено в:
-
removeFirstOccurrenceв интерфейсеDeque<E> - Параметры:
-
o— элемент, который необходимо удалить из этого списка, если он присутствует - Возвращает:
-
true, если список содержал указанный элемент - Начиная с версии:
- 1.6
removeLastOccurrence
public boolean removeLastOccurrence(Object o)
- Определено в:
-
removeLastOccurrenceв интерфейсеDeque<E> - Параметры:
-
o— элемент, который необходимо удалить из этого списка, если он присутствует - Возвращает:
-
true, если список содержал указанный элемент - Начиная с версии:
- 1.6
listIterator
public ListIterator<E> listIterator(int index)
List.listIterator(int). Итератор списка является быстроотказывающим: если после создания Iterator структура списка изменяется каким-либо способом, кроме вызова собственных методов remove или add итератора списка, итератор списка выбрасывает ConcurrentModificationException. Таким образом, при параллельном изменении итератор быстро и корректно завершается с ошибкой, а не рискует в неопределенный момент в будущем привести к произвольному, недетерминированному поведению.
- Определено в:
-
listIteratorв интерфейсеList<E> - Определено в:
-
listIteratorв классеAbstractSequentialList<E> - Параметры:
-
index— индекс первого элемента, который будет возвращен итератором списка (при вызовеnext) - Возвращает:
- ListIterator элементов этого списка в правильном порядке, начиная с указанной позиции в списке
- Исключения:
-
IndexOutOfBoundsException— если индекс выходит за допустимый диапазон (index < 0 || index > size()) - См. также:
descendingIterator
public Iterator<E> descendingIterator()
Deque- Определено в:
-
descendingIteratorв интерфейсеDeque<E> - Возвращает:
- итератор элементов этой двусторонней очереди в обратном порядке
- Начиная с версии:
- 1.6
clone
toArray
public Object[] toArray()
Возвращаемый массив является «безопасным» в том смысле, что этот список не хранит на него ссылок. (Иными словами, этот метод должен выделить новый массив.) Поэтому вызывающий код может свободно изменять возвращенный массив.
Этот метод служит связующим звеном между API на основе массивов и API на основе коллекций.
- Определено в:
-
toArrayв интерфейсеCollection<E> - Определено в:
-
toArrayв интерфейсеList<E> - Переопределяет:
-
toArrayв классеAbstractCollection<E> - Возвращает:
- массив, содержащий все элементы этого списка в правильном порядке
- См. также:
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().- Определено в:
-
toArrayв интерфейсеCollection<E> - Определено в:
-
toArrayв интерфейсеList<E> - Переопределяет:
-
toArrayв классеAbstractCollection<E> - Параметры типа:
T— тип компонентов массива, в котором будет храниться коллекция- Параметры:
-
a— массив, в котором будут храниться элементы списка, если он достаточно велик; в противном случае для этой цели выделяется новый массив того же типа во время выполнения. - Возвращает:
- массив, содержащий элементы списка
- Исключения:
-
ArrayStoreException— если тип указанного массива во время выполнения не является супертипом типа во время выполнения каждого элемента этого списка -
NullPointerException— если указанный массив равен null
spliterator
public Spliterator<E> spliterator()
Spliterator для элементов этого списка. Spliterator сообщает о характеристиках Spliterator.SIZED и Spliterator.ORDERED. В переопределяющих реализациях следует документировать наличие дополнительных характеристик.
- Определено в:
-
spliteratorв интерфейсеCollection<E> - Определено в:
-
spliteratorв интерфейсеIterable<E> - Определено в:
-
spliteratorв интерфейсеList<E> - Примечание по реализации:
Spliteratorдополнительно сообщает о характеристикеSpliterator.SUBSIZEDи реализуетtrySplitдля обеспечения ограниченного параллелизма..- Возвращает:
Spliteratorдля элементов этого списка- С:
- 1.8
reversed
public LinkedList<E> reversed()
Изменения представления в обратном порядке разрешены и будут передаваться этому списку. Кроме того, изменения этого списка будут видны в представлении в обратном порядке.
© 1993, 2025, Oracle and/or its affiliates. All rights reserved.
Documentation extracted from Debian's OpenJDK Development Kit package.
Licensed under the GNU General Public License, version 2, with the Classpath Exception.
Various third party code in OpenJDK is licensed under different licenses (see Debian package).
Java and OpenJDK are trademarks or registered trademarks of Oracle and/or its affiliates.