鴻蒙OS AbstractSequentialList

2022-07-08 11:48 更新

AbstractSequentialList

java.lang.Object

|---java.util.AbstractCollection<E&

|---|---java.util.AbstractList<E&

|---|---|---java.util.AbstractSequentialList<E&

public abstract class AbstractSequentialList<E>
extends AbstractList<E>

此類提供 List 接口的骨架實現(xiàn),以最大限度地減少實現(xiàn)此接口所需的工作,該接口由“順序訪問”數(shù)據(jù)存儲(例如鏈表)支持。對于隨機訪問數(shù)據(jù)(如數(shù)組),應(yīng)優(yōu)先使用 AbstractList 而非此類。

此類與 AbstractList 類相反,因為它實現(xiàn)了“隨機訪問”方法(get(int index)、set(int index, E element)、add(int index, E element) 和 remove(int index )) 在列表的列表迭代器之上,而不是相反。

要實現(xiàn)一個列表,程序員只需要擴展這個類并提供 listIterator 和 size 方法的實現(xiàn)。對于不可修改的列表,程序員只需要實現(xiàn)列表迭代器的hasNext、next、hasPrevious、previous和index方法即可。

對于可修改的列表,程序員應(yīng)該另外實現(xiàn)列表迭代器的 set 方法。對于可變大小的列表,程序員應(yīng)該另外實現(xiàn)列表迭代器的刪除和添加方法。

根據(jù) Collection 接口規(guī)范中的建議,程序員通常應(yīng)該提供一個 void(無參數(shù))和集合構(gòu)造函數(shù)。

此類是 Java 集合框架的成員。

字段摘要

從類 java.util.AbstractList 繼承的字段
modCount

構(gòu)造函數(shù)摘要

修飾符 構(gòu)造函數(shù) 描述
protected AbstractSequentialList() 唯一的構(gòu)造函數(shù)。

方法總結(jié)

修飾符和類型 方法 描述
void add(int index, E element) 在此列表中的指定位置插入指定元素(可選操作)。
boolean addAll(int index, Collection<? extends E> c) 將指定集合中的所有元素插入到此列表中的指定位置(可選操作)。
E get(int index) 返回此列表中指定位置的元素。
IteratorE iterator() 返回此列表中元素的迭代器(以正確的順序)。
abstract ListIteratorE listIterator(int index) 返回此列表中元素的列表迭代器(以正確的順序)。
E remove(int index) 移除此列表中指定位置的元素(可選操作)。
E set(int index, E element) 將此列表中指定位置的元素替換為指定元素(可選操作)。
從類 java.util.AbstractCollection 繼承的方法
addAll, contains, containsAll, isEmpty, remove, removeAll, retainAll, size, toArray, toArray, toString
從類 java.util.AbstractList 繼承的方法
add, clear, equals, hashCode, indexOf, lastIndexOf, listIterator, removeRange, subList
從接口 java.util.Collection 繼承的方法
parallelStream, removeIf, stream
從接口 java.lang.Iterable 繼承的方法
forEach
從接口 java.util.List 繼承的方法
addAll, contains, containsAll, isEmpty, remove, removeAll, replaceAll, retainAll, size, sort, spliterator, toArray, toArray
從類 java.lang.Object 繼承的方法
clone, finalize, getClass, notify, notifyAll, wait, wait, wait

構(gòu)造函數(shù)詳細信息

AbstractSequentialList

protected AbstractSequentialList()

唯一的構(gòu)造函數(shù)。 (用于子類構(gòu)造函數(shù)的調(diào)用,通常是隱式的。)

方法詳情

get

public E get(int index)

返回此列表中指定位置的元素。

此實現(xiàn)首先獲取一個指向索引元素的列表迭代器(使用 listIterator(index))。 然后,它使用 ListIterator.next 獲取元素并返回它。

指定者:

進入接口 ListE

指定者:

進入類 AbstractListE

參數(shù):

參數(shù)名稱 參數(shù)描述
index 要返回的元素的索引

返回:

此列表中指定位置的元素

Throws:

Throw名稱 Throw描述
IndexOutOfBoundsException 如果索引超出范圍 (index < 0 || index >= size())

set

public E set(int index, E element)

將此列表中指定位置的元素替換為指定元素(可選操作)。

此實現(xiàn)首先獲取一個指向索引元素的列表迭代器(使用 listIterator(index))。 然后,它使用 ListIterator.next 獲取當前元素并將其替換為 ListIterator.set。

請注意,如果列表迭代器未實現(xiàn) set 操作,此實現(xiàn)將拋出 UnsupportedOperationException。

指定者:

在接口 ListE 中設(shè)置

覆蓋:

在類 AbstractListE 中設(shè)置

參數(shù):

參數(shù)名稱 參數(shù)描述
index 要替換的元素的索引
element 要存儲在指定位置的元素

返回:

先前在指定位置的元素

Throws:

Throw名稱 Throw描述
UnsupportedOperationException 如果此列表不支持設(shè)置操作
ClassCastException 如果指定元素的類阻止它被添加到這個列表中
NullPointerException 如果指定元素為空且此列表不允許空元素
IllegalArgumentException 如果指定元素的某些屬性阻止它被添加到此列表中
IndexOutOfBoundsException 如果索引超出范圍 (index < 0 || index >= size())

add

public void add(int index, E element)

在此列表中的指定位置插入指定元素(可選操作)。 將當前位于該位置的元素(如果有)和任何后續(xù)元素向右移動(將其索引加一)。

此實現(xiàn)首先獲取一個指向索引元素的列表迭代器(使用 listIterator(index))。 然后,它使用 ListIterator.add 插入指定的元素。

請注意,如果列表迭代器未實現(xiàn)添加操作,此實現(xiàn)將拋出 UnsupportedOperationException。

指定者:

添加接口ListE

覆蓋:

添加類 AbstractListE

參數(shù):

參數(shù)名稱 參數(shù)描述
index 要插入指定元素的索引
element 要插入的元素

Throws:

Throw名稱 Throw描述
UnsupportedOperationException 如果此列表不支持添加操作
ClassCastException 如果指定元素的類阻止它被添加到這個列表中
NullPointerException 如果指定元素為空且此列表不允許空元素
IllegalArgumentException 如果指定元素的某些屬性阻止它被添加到此列表中
IndexOutOfBoundsException 如果索引超出范圍 (index < 0 || index > size())

remove

public E remove(int index)

移除此列表中指定位置的元素(可選操作)。 將任何后續(xù)元素向左移動(從它們的索引中減去 1)。 返回從列表中刪除的元素。

此實現(xiàn)首先獲取一個指向索引元素的列表迭代器(使用 listIterator(index))。 然后,它使用 ListIterator.remove 刪除元素。

請注意,如果列表迭代器未實現(xiàn)刪除操作,此實現(xiàn)將拋出 UnsupportedOperationException。

指定者:

在接口 ListE 中刪除

覆蓋:

在類 AbstractListE 中刪除

參數(shù):

參數(shù)名稱 參數(shù)描述
index 要刪除的元素的索引

返回:

先前在指定位置的元素

Throws:

Throw名稱 Throw描述
UnsupportedOperationException 如果此列表不支持刪除操作
IndexOutOfBoundsException 如果索引超出范圍 (index < 0 || index >= size())

addAll

public boolean addAll(int index, Collection<? extends E> c)

將指定集合中的所有元素插入到此列表中的指定位置(可選操作)。將當前位于該位置的元素(如果有)和任何后續(xù)元素向右移動(增加它們的索引)。新元素將按照指定集合的迭代器返回的順序出現(xiàn)在此列表中。如果在操作正在進行時修改了指定的集合,則此操作的行為是未定義的。 (請注意,如果指定的集合是這個列表,并且它是非空的,則會發(fā)生這種情況。)

此實現(xiàn)獲取指定集合的迭代器和指向索引元素的列表迭代器(使用 listIterator(index))。然后,它迭代指定的集合,將從迭代器獲得的元素插入到這個列表中,一次一個,使用 ListIterator.add 后跟 ListIterator.next(跳過添加的元素)。

請注意,如果 listIterator 方法返回的列表迭代器未實現(xiàn)添加操作,則此實現(xiàn)將拋出 UnsupportedOperationException。

指定者:

接口 ListE 中的 addAll

覆蓋:

類 AbstractListE 中的 addAll

參數(shù):

參數(shù)名稱 參數(shù)描述
index 插入指定集合中第一個元素的索引
c 包含要添加到此列表的元素的集合

返回:

如果此列表因調(diào)用而更改,則為 true

Throws:

Throw名稱 Throw描述
UnsupportedOperationException 如果此列表不支持 addAll 操作
ClassCastException 如果指定集合的元素的類阻止它被添加到此列表中
NullPointerException 如果指定的集合包含一個或多個空元素并且此列表不允許空元素,或者指定的集合為空
IllegalArgumentException 如果指定集合的某個元素的某些屬性阻止它被添加到此列表中
IndexOutOfBoundsException 如果索引超出范圍 (index < 0 || index > size())

iterator

public IteratorE iterator()

返回此列表中元素的迭代器(以正確的順序)。

此實現(xiàn)僅返回列表上的列表迭代器。

指定者:

接口 CollectionE 中的迭代器

指定者:

接口 IterableE 中的迭代器

指定者:

接口 ListE 中的迭代器

覆蓋:

AbstractListE 類中的迭代器

返回:

此列表中元素的迭代器(按正確順序)

listIterator

public abstract ListIteratorE listIterator(int index)

返回此列表中元素的列表迭代器(以正確的順序)。

指定者:

接口 ListE 中的 listIterator

覆蓋:

AbstractListE 類中的 listIterator

參數(shù):

參數(shù)名稱 參數(shù)描述
index 要從列表迭代器返回的第一個元素的索引(通過調(diào)用 next 方法)

返回:

此列表中元素的列表迭代器(按正確順序)

Throws:

Throw名稱 Throw描述
IndexOutOfBoundsException 如果索引超出范圍 (index < 0 || index > size())
以上內(nèi)容是否對您有幫助:
在線筆記
App下載
App下載

掃描二維碼

下載編程獅App

公眾號
微信公眾號

編程獅公眾號