Класс AbstractSequentialList<E>
- java.lang.Object
-
- java.util.AbstractCollection<E>
-
- java.util.AbstractList<E>
-
- java.util.AbstractSequentialList<E>
- Все реализованные интерфейсы:
-
Iterable<E>,Collection<E>,List<E>
- Прямые известные подклассы:
LinkedList
public abstract class AbstractSequentialList<E> extends AbstractList<E>
Этот класс предоставляет скелетную реализацию интерфейса List, чтобы минимизировать усилия, необходимые для реализации этого интерфейса, поддерживаемого хранилищем данных с "последовательным доступом" (например, связанным списком). Для данных с произвольным доступом (например, массив), следует использовать AbstractList вместо этого класса.
Этот класс является противоположностью классу AbstractList в том смысле, что он реализует методы "произвольного доступа" (get(int index), set(int index, E element), add(int index, E element) и remove(int index)) на основе итератора списка, а не наоборот.
Для реализации списка программисту необходимо только расширить этот класс и предоставить реализации методов listIterator и size. Для неизменяемого списка программисту нужно только реализовать методы итератора списка hasNext, next, hasPrevious, previous и index.
Для изменяемого списка программисту дополнительно необходимо реализовать метод итератора списка set. Для списка переменного размера программисту дополнительно нужно реализовать методы итератора списка remove и add.
Программист обычно должен предоставить пустой (без аргументов) и коллекционный конструктор, в соответствии с рекомендациями в спецификации интерфейса Collection.
Этот класс является членом Java Collections Framework.
- С момента:
- 1.2
- См. также:
-
Collection,List,AbstractList,AbstractCollection
Поля
Поля, объявленные в классе java.util.AbstractList
modCount Краткое описание конструкторов
| Модификатор | Конструктор | Описание |
|---|---|---|
protected | AbstractSequentialList() | Единственный конструктор. |
Краткое описание методов
| Модификатор и тип | Метод | Описание |
|---|---|---|
void | add(int index,
E element) | Вставляет указанный элемент в указанную позицию в этом списке (необязательная операция). |
boolean | addAll(int index,
Collection<? extends E> c) | Вставляет все элементы из указанной коллекции в этот список в указанной позиции (необязательная операция). |
E | get(int index) | Возвращает элемент в указанной позиции в этом списке. |
Iterator<E> | iterator() | Возвращает итератор по элементам в этом списке (в правильной последовательности). |
abstract ListIterator<E> | listIterator(int index) | Возвращает итератор списка по элементам в этом списке (в правильной последовательности). |
E | remove(int index) | Удаляет элемент в указанной позиции в этом списке (необязательная операция). |
E | set(int index,
E element) | Заменяет элемент в указанной позиции в этом списке указанным элементом (необязательная операция). |
Методы, объявленные в классе java.util.AbstractList
add, clear, equals, hashCode, indexOf, lastIndexOf, listIterator, removeRange, subList Методы, объявленные в классе java.util.AbstractCollection
addAll, contains, containsAll, isEmpty, remove, removeAll, retainAll, toArray, toArray, toString Методы, объявленные в классе java.lang.Object
clone, finalize, getClass, notify, notifyAll, wait, wait, wait Методы, объявленные в интерфейсе java.util.Collection
parallelStream, removeIf, stream, toArray Методы, объявленные в интерфейсе java.lang.Iterable
forEach Методы, объявленные в интерфейсе java.util.List
addAll, contains, containsAll, isEmpty, remove, removeAll, replaceAll, retainAll, size, sort, spliterator, toArray, toArray Конструкторы
AbstractSequentialList
protected AbstractSequentialList()
Единственный конструктор. (Для вызова подклассами, обычно неявный.)
Методы
get
public E get(int index)
Возвращает элемент по указанному индексу в этом списке.
Это реализация сначала получает итератор списка, указывающий на элемент по индексу (с помощью listIterator(index)). Затем она получает элемент, используя ListIterator.next, и возвращает его.
- Определено в:
-
getв интерфейсеList<E> - Определено в:
-
getв классеAbstractList<E> - Параметры:
-
index- индекс возвращаемого элемента - Возвращает:
- элемент по указанному индексу в этом списке
- Исключение:
-
IndexOutOfBoundsException- если индекс вне диапазона (index < 0 || index >= size())
set
public E set(int index,
E element) Заменяет элемент по указанному индексу в этом списке указанным элементом (необязательная операция).
Эта реализация сначала получает итератор списка, указывающий на элемент по индексу (с помощью listIterator(index)). Затем она получает текущий элемент, используя ListIterator.next, и заменяет его на ListIterator.set.
Обратите внимание, что эта реализация будет выбрасывать UnsupportedOperationException, если итератор списка не реализует операцию set.
- Определено в:
-
setв интерфейсеList<E> - Переопределяет:
-
setв классеAbstractList<E> - Параметры:
-
index- индекс заменяемого элемента -
element- элемент, который будет сохранен по указанному индексу - Возвращает:
- элемент, который ранее находился по указанному индексу
- Исключение:
-
UnsupportedOperationException- если операцияsetне поддерживается этим списком -
ClassCastException- если класс указанного элемента препятствует его добавлению в этот список -
NullPointerException- если указанный элемент равен null, а этот список не допускает null-элементов -
IllegalArgumentException- если некоторые свойства указанного элемента препятствуют его добавлению в этот список -
IndexOutOfBoundsException- если индекс вне диапазона (index < 0 || index >= size())
add
public void add(int index,
E element) Вставляет указанный элемент по указанному индексу в этот список (необязательная операция). Смещает элемент, который в данный момент находится на этом месте (если есть), и все последующие элементы вправо (увеличивает их индексы на единицу).
Эта реализация сначала получает итератор списка, указывающий на элемент по индексу (с помощью listIterator(index)). Затем она вставляет указанный элемент с помощью ListIterator.add.
Обратите внимание, что эта реализация выбросит UnsupportedOperationException, если итератор списка не реализует операцию add.
- Определено в:
-
addв интерфейсеList<E> - Переопределяет:
-
addв классеAbstractList<E> - Параметры:
-
index- индекс, по которому должен быть вставлен указанный элемент -
element- вставляемый элемент - Исключение:
-
UnsupportedOperationException- если операцияaddне поддерживается этим списком -
ClassCastException- если класс указанного элемента препятствует его добавлению в этот список -
NullPointerException- если указанный элемент равен null, а этот список не допускает null-элементов -
IllegalArgumentException- если некоторые свойства указанного элемента препятствуют его добавлению в этот список -
IndexOutOfBoundsException- если индекс вне диапазона (index < 0 || index > size())
remove
public E remove(int index)
Удаляет элемент по указанному индексу в этом списке (необязательная операция). Смещает все последующие элементы влево (уменьшает их индексы на единицу). Возвращает удаленный из списка элемент.
Эта реализация сначала получает итератор списка, указывающий на элемент по индексу (с помощью listIterator(index)). Затем она удаляет элемент с помощью ListIterator.remove.
Обратите внимание, что эта реализация выбросит UnsupportedOperationException, если итератор списка не реализует операцию remove.
- Определено в:
-
removeв интерфейсеList<E> - Переопределяет:
-
removeв классеAbstractList<E> - Параметры:
-
index- индекс удаляемого элемента - Возвращает:
- элемент, который ранее находился по указанному индексу
- Исключение:
-
UnsupportedOperationException- если операцияremoveне поддерживается этим списком -
IndexOutOfBoundsException- если индекс вне диапазона (index < 0 || index >= size())
addAll
public boolean addAll(int index,
Collection<? extends E> c) Вставляет все элементы указанного набора в этот список по указанному индексу (необязательная операция). Смещает элемент, который в данный момент находится на этом месте (если есть), и все последующие элементы вправо (увеличивает их индексы). Новые элементы будут появляться в этом списке в том порядке, в котором они возвращаются итератором указанного набора. Поведение этой операции не определено, если указанный набор изменяется во время выполнения операции. (Обратите внимание, что это произойдет, если указанный набор является этим списком и он непуст.)
Эта реализация получает итератор над указанным набором и итератор списка над этим списком, указывающий на элемент по индексу (с помощью listIterator(index)). Затем она итерируется по указанному набору, вставляя элементы, полученные из итератора, в этот список по одному, используя ListIterator.add, за которым следует ListIterator.next, чтобы пропустить добавленный элемент.
Обратите внимание, что эта реализация выбросит UnsupportedOperationException, если итератор списка, возвращаемый методом listIterator, не реализует операцию add.
- Определено в:
-
addAllв интерфейсеList<E> - Переопределяет:
-
addAllв классеAbstractList<E> - Параметры:
-
index- индекс, по которому будет вставлен первый элемент из указанного набора -
c- набор, содержащий элементы, которые должны быть добавлены в этот список - Возвращает:
-
trueесли этот список изменился в результате вызова - Исключение:
-
UnsupportedOperationException- если операцияaddAllне поддерживается этим списком -
ClassCastException- если класс элемента указанного набора препятствует его добавлению в этот список -
NullPointerException- если указанный набор содержит один или несколько null-элементов, а этот список не допускает null-элементов, или если указанный набор равен null -
IllegalArgumentException- если некоторые свойства элемента указанного набора препятствуют его добавлению в этот список -
IndexOutOfBoundsException- если индекс вне диапазона (index < 0 || index > size())
iterator
public Iterator<E> iterator()
Возвращает итератор по элементам в этом списке (в правильном порядке).
Эта реализация просто возвращает итератор списка над списком.
- Определено в:
-
iteratorв интерфейсеCollection<E> - Определено в:
-
iteratorв интерфейсеIterable<E> - Определено в:
-
iteratorв интерфейсеList<E> - Переопределяет:
-
iteratorв классеAbstractList<E> - Возвращает:
- итератор по элементам в этом списке (в правильном порядке)
listIterator
public abstract ListIterator<E> listIterator(int index)
Возвращает итератор списка по элементам в этом списке (в правильном порядке).
- Определено в:
-
listIteratorв интерфейсеList<E> - Переопределяет:
-
listIteratorв классеAbstractList<E> - Параметры:
-
index- индекс первого элемента, который должен быть возвращен итератором списка (методомnext) - Возвращает:
- итератор списка по элементам в этом списке (в правильном порядке)
- Исключение:
-
IndexOutOfBoundsException- если индекс вне диапазона (index < 0 || index > size())
© 1993, 2020, 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/11/docs/api/java.base/java/util/AbstractSequentialList.html