Руководство Java LinkedList
1. LinkedList
LinkedList (связанный список) - это один из самых специальных классов в Java Collection Framework. Ниже приведены его характеристики:
- LinkedList можно использовать как List (список), Deque (Double ended Queue) (двусторонняя очередь) или stack (стек).
- LinkedList не синхронизирован (non synchronized).
- LinkedList допускаетдублировать элементы.
- LinkedList не допускает нулевых элементов null (характеристики Queue).
- LinkedList поддерживает порядок вставки элементов.
public class LinkedList<E>
extends AbstractSequentialList<E>
implements List<E>, Deque<E>, Cloneable, java.io.Serializable

LinkedList constructors
LinkedList()
LinkedList(Collection<? extends E> c)
LinkedList methods
void add(int index, E element)
boolean add(E e)
boolean addAll(int index, Collection<? extends E> c)
boolean addAll(Collection<? extends E> c)
void addFirst(E e)
void addLast(E e)
void clear()
Object clone()
boolean contains(Object o)
Iterator<E> descendingIterator()
E element()
E get(int index)
E getFirst()
E getLast()
int indexOf(Object o)
int lastIndexOf(Object o)
ListIterator<E> listIterator(int index)
boolean offer(E e)
boolean offerFirst(E e)
boolean offerLast(E e)
E peek()
E peekFirst()
E peekLast()
E poll()
E pollFirst()
E pollLast()
E pop()
void push(E e)
E remove()
E remove(int index)
boolean remove(Object o)
E removeFirst()
boolean removeFirstOccurrence(Object o)
E removeLast()
boolean removeLastOccurrence(Object o)
E set(int index, E element)
int size()
Spliterator<E> spliterator()
Object[] toArray()
<T> T[] toArray(T[] a)
2. Как LinkedList хранит элементы?
LinkedList управляет элементами специально, преодолевая недостатки массивов. В этом разделе мы проанализируем, как LinkedList управляет своими элементами.
Каждый LinkedList элемент обернут (wrap) объектом Node. Каждый объект Node имеет ссылку на Node, предшествующий ему и следующий Node за ним. Таким образом, мы можем перейти от первого LinkedList элемента к последнему.

Удаление элемента из LinkedList эквивалентно удалению соответствующего Node. Для этого предыдущий и следующий Node просто обновляют свои ссылки:

Вставка элемента в LinkedList также выполняется простым способом, как показано ниже:

3. Examples (as List)
LinkedList можно использовать как List, он поддерживает все методы, указанные в интерфейсе List, включая опциональные методы. Таким образом, вы можете получить доступ к элементам LinkedList через Iterator, ListIterator или Stream. Вы можете найти лучшие примеры о List в статье ниже:
4. Example (as Deque)
LinkedList также может использоваться как Deque (Double ended Queue) или как stack (стек). Лучшие примеры Deque и stack описаны в статье ниже:
Deque (Double ended Queue) (двусторонняя очередь) похожа на обычную очередь, но вы можете получить доступ к ее первому и последнему элементу.

Stack работает по принципу (Last In First Out) (Последний вставленный элемент будет извлечен первым).

Руководства Java Collections Framework
- Руководство Java PriorityBlockingQueue
- Руководство Java Collections Framework
- Руководство Java SortedSet
- Руководство Java List
- Руководство Java Iterator
- Руководство Java NavigableSet
- Руководство Java ListIterator
- Руководство Java ArrayList
- Руководство Java CopyOnWriteArrayList
- Руководство Java LinkedList
- Руководство Java Set
- Руководство Java TreeSet
- Руководство Java CopyOnWriteArraySet
- Руководство Java Queue
- Руководство Java Deque
- Руководство Java IdentityHashMap
- Руководство Java WeakHashMap
- Руководство Java Map
- Руководство Java SortedMap
- Руководство Java NavigableMap
- Руководство Java HashMap
- Руководство Java TreeMap
- Руководство Java PriorityQueue
- Руководство Java BlockingQueue
- Руководство Java ArrayBlockingQueue
- Руководство Java TransferQueue
Show More