Spec-Zone .ru
спецификации, руководства, описания, API
|
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(...));
iterators возвратился этим классом iterator
и listIterator
методы являются сбоем быстро: если список структурно изменяется когда-либо после того, как iterator создается, всегда кроме через собственного Итерэтора remove
или add
методы, iterator бросит a ConcurrentModificationException
. Таким образом, перед лицом параллельной модификации, iterator перестал работать быстро и чисто, вместо того, чтобы рискнуть произвольным, недетерминированным поведением в неопределенное время в будущем.
Отметьте, что поведение сбоя быстро iterator не может быть гарантировано, как, вообще говоря, невозможно сделать любые трудные гарантии в присутствии несинхронизируемой параллельной модификации. Приведите бросок iterators к сбою быстро ConcurrentModificationException
на основе максимальных усилий. Поэтому, было бы неправильно записать программу, которая зависела от этого исключения для его правильности: поведение сбоя быстро iterators должно использоваться только, чтобы обнаружить ошибки.
Этот класс является элементом Платформы Наборов Java.
List
, ArrayList
, Сериализированная ФормаmodCount
Конструктор и Описание |
---|
LinkedList()
Создает пустой список.
|
LinkedList(Collection<? extends E> c)
Создает список, содержащий элементы указанного набора, в порядке, они возвращаются iterator набора.
|
Модификатор и Тип | Метод и Описание |
---|---|
boolean |
add(E e)
Добавляет указанный элемент до конца этого списка.
|
void |
add(int index, E element)
Вставляет указанный элемент в указанной позиции в этом списке.
|
boolean |
addAll(Collection<? extends E> c)
Добавляет все элементы в указанном наборе до конца этого списка, в порядке, что они возвращаются iterator указанного набора.
|
boolean |
addAll(int index, Collection<? extends E> c)
Вставляет все элементы в указанном наборе в этот список, запускающийся в указанной позиции.
|
void |
addFirst(E e)
Вставляет указанный элемент в начале этого списка.
|
void |
addLast(E e)
Добавляет указанный элемент до конца этого списка.
|
void |
clear()
Удаляет все элементы от этого списка.
|
Объект |
clone()
Возвращает мелкую копию этого
LinkedList . |
boolean |
contains(Object o)
Возвраты
true если этот список содержит указанный элемент. |
Iterator<E> |
descendingIterator()
Возвращает iterator по элементам в этой двухсторонней очереди в обратном последовательном порядке.
|
E |
element()
Получает, но не удаляет, голова (первый элемент) этого списка.
|
E |
get(int index)
Возвращает элемент в указанной позиции в этом списке.
|
E |
getFirst()
Возвращает первый элемент в этом списке.
|
E |
getLast()
Возвращает последний элемент в этом списке.
|
int |
indexOf(Object o)
Возвращает индекс первого возникновения указанного элемента в этом списке, или-1, если этот список не содержит элемент.
|
int |
lastIndexOf(Object o)
Возвращает индекс последнего вхождения указанного элемента в этом списке, или-1, если этот список не содержит элемент.
|
ListIterator<E> |
listIterator(int index)
Возвращает список-iterator элементов в этом списке (в надлежащей последовательности), запускаясь в указанной позиции в списке.
|
boolean |
offer(E e)
Добавляет указанный элемент как хвост (последний элемент) этого списка.
|
boolean |
offerFirst(E e)
Вставляет указанный элемент впереди этого списка.
|
boolean |
offerLast(E e)
Вставляет указанный элемент в конце этого списка.
|
E |
peek()
Получает, но не удаляет, голова (первый элемент) этого списка.
|
E |
peekFirst()
Получает, но не удаляет, первый элемент этого списка, или возвраты
null если этот список пуст. |
E |
peekLast()
Получает, но не удаляет, последний элемент этого списка, или возвраты
null если этот список пуст. |
E |
poll()
Получает и удаляет голову (первый элемент) этого списка.
|
E |
pollFirst()
Получает и удаляет первый элемент этого списка, или возвраты
null если этот список пуст. |
E |
pollLast()
Получает и удаляет последний элемент этого списка, или возвраты
null если этот список пуст. |
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()
Возвращает число элементов в этом списке.
|
Объект[] |
toArray()
Возвращает массив, содержащий все элементы в этом списке в надлежащей последовательности (от сначала, чтобы продлиться элемент).
|
<T> T[] |
toArray(T[] a)
Возвращает массив, содержащий все элементы в этом списке в надлежащей последовательности (от сначала, чтобы продлиться элемент); тип времени выполнения возвращенного массива является типом указанного массива.
|
iterator
equals, hashCode, listIterator, removeRange, subList
containsAll, isEmpty, removeAll, retainAll, toString
finalize, getClass, notify, notifyAll, wait, wait, wait
containsAll, equals, hashCode, isEmpty, iterator, listIterator, removeAll, retainAll, subList
iterator
public LinkedList()
public LinkedList(Collection<? extends E> c)
c
- набор, элементы которого должны быть помещены в этот списокNullPointerException
- если указанный набор является нулемpublic E getFirst()
getFirst
в интерфейсе Deque<E>
NoSuchElementException
- если этот список пустpublic E getLast()
getLast
в интерфейсе Deque<E>
NoSuchElementException
- если этот список пустpublic E removeFirst()
removeFirst
в интерфейсе Deque<E>
NoSuchElementException
- если этот список пустpublic E removeLast()
removeLast
в интерфейсе Deque<E>
NoSuchElementException
- если этот список пустpublic void addFirst(E e)
public void addLast(E e)
Этот метод эквивалентен add(E)
.
public boolean contains(Object o)
true
если этот список содержит указанный элемент. Более формально, возвраты true
если и только если этот список содержит по крайней мере один элемент e
так, что (o==null ? e==null : o.equals(e)).contains
в интерфейсе Collection<E>
contains
в интерфейсе Deque<E>
contains
в интерфейсе List<E>
contains
в классе AbstractCollection<E>
o
- элемент, присутствие которого в этом списке должно быть протестированоtrue
если этот список содержит указанный элементpublic int size()
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)
)public boolean remove(Object o)
i
так, что (o==null ? get(i)==null : o.equals(get(i))) (если такой элемент существует). Возвраты true
если этот список, содержавший указанный элемент (или эквивалентно, если этот список, измененный в результате вызова).remove
в интерфейсе Collection<E>
remove
в интерфейсе Deque<E>
remove
в интерфейсе List<E>
remove
в классе AbstractCollection<E>
o
- элемент, который будет удален из этого списка, если существующийtrue
если этот список, содержавший указанный элементpublic boolean addAll(Collection<? extends E> c)
addAll
в интерфейсе Collection<E>
addAll
в интерфейсе List<E>
addAll
в классе AbstractCollection<E>
c
- набор, содержащий элементы, которые будут добавлены к этому спискуtrue
если этот список изменился в результате вызоваNullPointerException
- если указанный набор является нулемAbstractCollection.add(Object)
public boolean addAll(int index, Collection<? extends E> c)
addAll
в интерфейсе List<E>
addAll
в классе AbstractSequentialList<E>
index
- индекс, по которому можно вставить первый элемент от указанного набораc
- набор, содержащий элементы, которые будут добавлены к этому спискуtrue
если этот список изменился в результате вызоваIndexOutOfBoundsException
- если индекс испытывает недостаток диапазона (index < 0 || index > size())NullPointerException
- если указанный набор является нулемpublic void clear()
clear
в интерфейсе Collection<E>
clear
в интерфейсе List<E>
clear
в классе AbstractList<E>
public E get(int index)
get
в интерфейсе List<E>
get
в классе AbstractSequentialList<E>
index
- индекс элемента, чтобы возвратитьсяIndexOutOfBoundsException
- если индекс испытывает недостаток диапазона (index < 0 || index >= size())public E set(int index, E element)
set
в интерфейсе List<E>
set
в классе AbstractSequentialList<E>
index
- индекс элемента, чтобы заменитьelement
- элемент, который будет сохранен в указанной позицииIndexOutOfBoundsException
- если индекс испытывает недостаток диапазона (index < 0 || index >= size())public void add(int index, E element)
add
в интерфейсе List<E>
add
в классе AbstractSequentialList<E>
index
- индекс, по которому должен быть вставлен указанный элементelement
- элемент, который будет вставленIndexOutOfBoundsException
- если индекс испытывает недостаток диапазона (index < 0 || index > size())public E remove(int index)
remove
в интерфейсе List<E>
remove
в классе AbstractSequentialList<E>
index
- индекс элемента, который будет удаленIndexOutOfBoundsException
- если индекс испытывает недостаток диапазона (index < 0 || index >= size())public int indexOf(Object o)
i
так, что (o==null ? get(i)==null : o.equals(get(i))), или-1, если нет такого индекса.public int lastIndexOf(Object o)
i
так, что (o==null ? get(i)==null : o.equals(get(i))), или-1, если нет такого индекса.lastIndexOf
в интерфейсе List<E>
lastIndexOf
в классе AbstractList<E>
o
- элемент, чтобы искатьpublic E peek()
public E element()
public E poll()
public E remove()
public boolean offer(E e)
public boolean offerFirst(E e)
offerFirst
в интерфейсе Deque<E>
e
- элемент, чтобы вставитьtrue
(как определено Deque.offerFirst(E)
)public boolean offerLast(E e)
offerLast
в интерфейсе Deque<E>
e
- элемент, чтобы вставитьtrue
(как определено Deque.offerLast(E)
)public E peekFirst()
null
если этот список пуст.public E peekLast()
null
если этот список пуст.public E pollFirst()
null
если этот список пуст.public E pollLast()
null
если этот список пуст.public void push(E e)
Этот метод эквивалентен addFirst(E)
.
public E pop()
Этот метод эквивалентен removeFirst()
.
pop
в интерфейсе Deque<E>
NoSuchElementException
- если этот список пустpublic boolean removeFirstOccurrence(Object o)
removeFirstOccurrence
в интерфейсе Deque<E>
o
- элемент, который будет удален из этого списка, если существующийtrue
если список, содержавший указанный элементpublic boolean removeLastOccurrence(Object o)
removeLastOccurrence
в интерфейсе Deque<E>
o
- элемент, который будет удален из этого списка, если существующийtrue
если список, содержавший указанный элементpublic ListIterator<E> listIterator(int index)
List.listIterator(int)
. Список-iterator является сбоем быстро: если список структурно изменяется когда-либо после того, как Iterator создается, всегда кроме через собственный список-iterator's remove
или add
методы, список-iterator бросит a ConcurrentModificationException
. Таким образом, перед лицом параллельной модификации, iterator перестал работать быстро и чисто, вместо того, чтобы рискнуть произвольным, недетерминированным поведением в неопределенное время в будущем.
listIterator
в интерфейсе List<E>
listIterator
в классе AbstractSequentialList<E>
index
- индекс первого элемента, который будет возвращен из списка-iterator (звонком next
)IndexOutOfBoundsException
- если индекс испытывает недостаток диапазона (index < 0 || index > size()
)List.listIterator(int)
public Iterator<E> descendingIterator()
Deque
descendingIterator
в интерфейсе Deque<E>
public Object clone()
LinkedList
. (Сами элементы не клонируются.)public Object[] toArray()
Возвращенный массив будет "безопасен" в этом, никакие ссылки на него не сохраняются этим списком. (Другими словами этот метод должен выделить новый массив). Вызывающая сторона таким образом свободна изменить возвращенный массив.
Этот метод действует как мост между основанными на массиве и основанными на наборе API.
toArray
в интерфейсе Collection<E>
toArray
в интерфейсе List<E>
toArray
в классе AbstractCollection<E>
Arrays.asList(Object[])
public <T> T[] toArray(T[] a)
Если список помещается в указанный массив с комнатой, чтобы сэкономить (то есть, у массива есть больше элементов чем список), элемент в массиве сразу после конца списка устанавливается в null
. (Это полезно в определении длины списка, только если вызывающая сторона знает, что список не содержит нулевых элементов.)
Как toArray()
метод, этот метод действует как мост между основанными на массиве и основанными на наборе API. Далее, этот метод позволяет точное управление типом времени выполнения выходного массива, и, при определенных обстоятельствах, может использоваться, чтобы сохранить затраты выделения.
Предположить x
список, который, как известно, содержал только строки. Следующий код может использоваться, чтобы вывести список в недавно выделенный массив String
:
String[] y = x.toArray(new String[0]);Отметьте это
toArray(new Object[0])
идентично в функции toArray()
.toArray
в интерфейсе Collection<E>
toArray
в интерфейсе List<E>
toArray
в классе AbstractCollection<E>
a
- массив, в который должны быть сохранены элементы списка, если это является достаточно большим; иначе, новый массив того же самого типа времени выполнения выделяется с этой целью.ArrayStoreException
- если тип времени выполнения указанного массива не является супертипом типа времени выполнения каждого элемента в этом спискеNullPointerException
- если указанный массив является нулем
Для дальнейшей ссылки API и документации разработчика, см.
Авторское право © 1993, 2011, Oracle и/или его филиалы. Все права защищены.