Класс 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.
- Начиная с:
- 1.2
- См. также:
Краткое описание полей
Поля, объявленные в классе AbstractList
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() |
Возвращает представление этой коллекции в обратном порядке. |
E |
set |
Заменяет элемент, находящийся в заданной позиции этого списка, заданным элементом. |
int |
size() |
Возвращает количество элементов в этом списке. |
Spliterator |
spliterator() |
Создаёт привязываемый при первом обращении и быстро завершающийся при ошибке Spliterator для элементов этого списка. |
Object[] |
toArray() |
Возвращает массив, содержащий все элементы этого списка в правильном порядке (от первого элемента к последнему). |
<T> T[] |
toArray |
Возвращает массив, содержащий все элементы этого списка в правильном порядке (от первого элемента к последнему); тип времени выполнения возвращаемого массива совпадает с типом заданного массива. |
Методы, объявленные в классе AbstractSequentialList
iterator
Методы, объявленные в классе AbstractList
equals, hashCode, listIterator, removeRange, subList
Методы, объявленные в классе AbstractCollection
containsAll, isEmpty, removeAll, retainAll, toString
Методы, объявленные в интерфейсе Collection
parallelStream, removeIf, stream, toArray
Методы, объявленные в интерфейсе List
containsAll, equals, hashCode, isEmpty, iterator, listIterator, removeAll, replaceAll, retainAll, sort, subList
Подробное описание конструкторов
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).Итератор списка является быстро завершающимся при ошибке: если после его создания структура списка каким-либо образом изменяется, кроме как с помощью собственных методов 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.
https://docs.oracle.com/en/java/javase/25/docs/api/java.base/java/util/LinkedList.html