betacode

Руководство Java LinkedList

Сайт бесплатного изучения языков:
Следуйте за нами на нашей фан-странице, чтобы получать уведомления каждый раз, когда появляются новые статьи. Facebook

1- LinkedList

LinkedList (связанный список) - это один из самых специальных классов в Java Collection Framework. Ниже приведены его характеристики:
  1. LinkedList можно использовать как List (список), Deque (Double ended Queue) (двусторонняя очередь) или stack (стек).
  2. LinkedList не синхронизирован (non synchronized).
  3. LinkedList допускает дублировать элементы.
  4. LinkedList не допускает нулевых элементов null (характеристики Queue).
  5. 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) (Последний вставленный элемент будет извлечен первым).