Класс LinkedList


Класс LinkedList в Java расширяет AbstractSequentialList и реализует интерфейс List. Он предоставляет структуру данных связанных списков.

Конструкторы
Ниже приведены конструкторы, поддерживаемые классом LinkedList.

№ Конструктор и описание
1 LinkedList( )
Этот конструктор создает пустой связанный список.
2 LinkedList(Collection c)
Этот конструктор создает связанный список, который инициализируется элементами коллекции c.


Методы
Помимо применения методов, унаследованных от родительских классов, LinkedList определяет следующие методы:

№ и описание
1 void add(int index, Object element)
Вставляет указанный элемент в указанный указатель позиции в этом списке. Вызывает IndexOutOfBoundsException, если указанный индекс выходит за допустимые пределы (index < 0 || index > size()).
2 boolean add(Object o)
Добавляет указанный элемент в конец этого списка.
3 boolean addAll(Collection c)
Добавляет все элементы в указанной коллекции в конец этого списка в том порядке, в котором они возвращаются итератором указанной коллекции. Выбрасывает NullPointerException, если указанная коллекция имеет значение null (нуль).
4 boolean addAll(int index, Collection c)
Вставляет все элементы указанной коллекции в этот список, начиная с указанной позиции. Вызывает NullPointerException, если указанная коллекция имеет значение null (нуль).
5 void addFirst(Object o)
Вставляет данный элемент в начало этого списка.
6 void addLast(Object o)
Добавляет данный элемент в конец этого списка.
7 void clear()
Удаляет все элементы из этого списка.
8 Object clone()
Возвращает мелкую копию этого LinkedList.
9 boolean contains(Object o)
Возвращает true, если этот список содержит указанный элемент. Если точнее, то возвращает true тогда и только тогда, когда этот список содержит хотя бы один элемент e такой, что (o==null ? e==null : o.equals(e)).
10 Object get(int index)
Возвращает элемент в указанной позиции в этом списке. Вызывает IndexOutOfBoundsException, если указанный индекс выходит за допустимые пределы (index < 0 || index >= size()).
11 Object getFirst()
Возвращает первый элемент в этом списке. Вызывает исключение NoSuchElementException, если этот список пуст.
12 Object getLast()
Возвращает последний элемент в этом списке. Вызывает исключение NoSuchElementException, если этот список пуст.
13 int indexOf(Object o)
Возвращает индекс в этом списке первого упоминания указанного элемента или -1, если список не содержит этот элемент.
14 int lastIndexOf(Object o)
Возвращает индекс в этом списке последнего упоминания указанного элемента или -1, если список не содержит этот элемент.
15 ListIterator listIterator(int index)
Возвращает список-итератор элементов в этом списке (в правильной последовательности), начиная с указанной позиции в списке. Вызывает IndexOutOfBoundsException, если указанный индекс выходит за пределы диапазона (index < 0 || index >= size()).
16 Object remove(int index)
Удаляет элемент в указанной позиции в этом списке. Вызывает исключение NoSuchElementException, если этот список пуст.
17 boolean remove(Object o)
Удаляет первое упоминание указанного элемента в этом списке. Вызывает исключение NoSuchElementException, если этот список пуст. Вызывает IndexOutOfBoundsException, если указанный индекс выходит за пределы диапазона (index < 0 || index >= size()).
18 Object removeFirst()
Удаляет и возвращает первый элемент из этого списка. Выбрасывает исключение NoSuchElementException, если этот список пуст.
19 Object removeLast()
Удаляет и возвращает последний элемент из этого списка. Вызывает исключение NoSuchElementException, если этот список пуст.
20 Object set(int index, Object element)
Заменяет элемент в указанной позиции в этом списке указанным элементом. Вызывает IndexOutOfBoundsException, если указанный индекс выходит за пределы диапазона (index < 0 || index >= size()).
21 int size()
Возвращает количество элементов в этом списке.
22 Object[] toArray()
Возвращает массив, содержащий все элементы в этом списке в правильном порядке. Выбрасывает NullPointerException, если указанный массив равен null (нулю).
23 Object[] toArray(Object[] a)
Возвращает массив, содержащий все элементы в этом списке в правильном порядке; тип выполнения возвращаемого массива - тип указанного массива.


Пример
Следующая программа показывает реализацию некоторых методов, поддерживаемые LinkedList в Java:

import java.util.*;
public class LinkedListDemo {

public static void main(String args[]) {
// Создаём LinkedList
LinkedList ll = new LinkedList();

// Добавляем элементы в LinkedList
ll.add("F");
ll.add("B");
ll.add("D");
ll.add("E");
ll.add("C");
ll.addLast("Z");
ll.addFirst("A");
ll.add(1, "A2");
System.out.println("Изначальное содержание ll: " + ll);

// Удаляем элементы из LinkedList
ll.remove("F");
ll.remove(2);
System.out.println("Содержание ll после удаления: " + ll);

// Удаляем первый и последний элементы
ll.removeFirst();
ll.removeLast();
System.out.println("ll после удаления первого и последнего: " + ll);

// Получаем и устанавливаем значение
Object val = ll.get(2);
ll.set(2, (String) val + " Изменено");
System.out.println("ll после изменения: " + ll);
}
}
Получим следующий результат:

Изначальное содержание ll: [A, A2, F, B, D, E, C, Z]
Содержание ll после удаления: [A, A2, D, E, C, Z]
ll после удаления первого и последнего: [A2, D, E, C]
ll после изменения: [A2, D, E Изменено, C]