日韩无码专区无码一级三级片|91人人爱网站中日韩无码电影|厨房大战丰满熟妇|AV高清无码在线免费观看|另类AV日韩少妇熟女|中文日本大黄一级黄色片|色情在线视频免费|亚洲成人特黄a片|黄片wwwav色图欧美|欧亚乱色一区二区三区

RELATEED CONSULTING
相關(guān)咨詢(xún)
選擇下列產(chǎn)品馬上在線溝通
服務(wù)時(shí)間:8:30-17:00
你可能遇到了下面的問(wèn)題
關(guān)閉右側(cè)工具欄

新聞中心

這里有您想知道的互聯(lián)網(wǎng)營(yíng)銷(xiāo)解決方案
創(chuàng)新互聯(lián)鴻蒙OS教程:鴻蒙OS AbstractList

AbstractList

java.lang.Object

|---java.util.AbstractCollection

|---|---java.util.AbstractList

public abstract class AbstractList
extends AbstractCollection
implements List

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

要實(shí)現(xiàn)一個(gè)不可修改的列表,程序員只需要擴(kuò)展這個(gè)類(lèi)并提供 get(int) 和 List#size() 方法的實(shí)現(xiàn)。

要實(shí)現(xiàn)一個(gè)可修改的列表,程序員必須另外重寫(xiě) set(int, E) 方法(否則會(huì)拋出 UnsupportedOperationException)。如果列表是可變大小的,則程序員必須另外覆蓋 add(int, E) 和 remove(int) 方法。

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

與其他抽象集合實(shí)現(xiàn)不同,程序員不必提供迭代器實(shí)現(xiàn);迭代器和列表迭代器由此類(lèi)在“隨機(jī)訪問(wèn)”方法之上實(shí)現(xiàn):get(int)、set(int, E)、add(int, E) 和 remove(int)。

此類(lèi)中每個(gè)非抽象方法的文檔都詳細(xì)描述了它的實(shí)現(xiàn)。如果正在實(shí)現(xiàn)的集合允許更有效的實(shí)現(xiàn),則可以覆蓋這些方法中的每一個(gè)。

此類(lèi)是 Java 集合框架的成員。

字段摘要

修飾符和類(lèi)型字段描述
protected intmodCount此列表在結(jié)構(gòu)上被修改的次數(shù)。

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

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

方法總結(jié)

修飾符和類(lèi)型方法描述
voidadd(int index, E element)在此列表中的指定位置插入指定元素(可選操作)。
booleanadd(E e)將指定元素附加到此列表的末尾(可選操作)。
booleanaddAll(int index, Collection c)將指定集合中的所有元素插入到此列表中的指定位置(可選操作)。
voidclear()從此列表中刪除所有元素(可選操作)。
booleanequals(Object o)比較指定對(duì)象與此列表是否相等。
abstract Eget(int index)返回此列表中指定位置的元素。
inthashCode()返回此列表的哈希碼值。
intindexOf(Object o)返回此列表中指定元素第一次出現(xiàn)的索引,如果此列表不包含該元素,則返回 -1。
IteratorEiterator()以正確的順序返回此列表中元素的迭代器。
intlastIndexOf(Object o)返回此列表中指定元素最后一次出現(xiàn)的索引,如果此列表不包含該元素,則返回 -1。
ListIteratorElistIterator()返回此列表中元素的列表迭代器(以正確的順序)。
ListIteratorElistIterator(int index)返回此列表中元素的列表迭代器(以正確的順序),從列表中的指定位置開(kāi)始。
Eremove(int index)移除此列表中指定位置的元素(可選操作)。
protected voidremoveRange(int fromIndex, int toIndex)從此列表中刪除索引在 fromIndex(包括)和 toIndex(不包括)之間的所有元素。
Eset(int index, E element)將此列表中指定位置的元素替換為指定元素(可選操作)。
ListEsubList(int fromIndex, int toIndex)返回此列表在指定的 fromIndex(包括)和 toIndex(不包括)之間的部分的視圖。
從類(lèi) java.util.AbstractCollection 繼承的方法
addAll, contains, containsAll, isEmpty, remove, removeAll, retainAll, size, toArray, toArray, toString
從接口 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
從類(lèi) java.lang.Object 繼承的方法
clone, finalize, getClass, notify, notifyAll, wait, wait, wait

字段詳細(xì)信息

modCount

protected transient int modCount

此列表在結(jié)構(gòu)上被修改的次數(shù)。結(jié)構(gòu)修改是那些改變列表大小的修改,或者以其他方式擾亂它,使得正在進(jìn)行的迭代可能產(chǎn)生不正確的結(jié)果。

該字段由 iterator 和 listIterator 方法返回的迭代器和列表迭代器實(shí)現(xiàn)使用。如果此字段的值意外更改,迭代器(或列表迭代器)將拋出 ConcurrentModificationException 以響應(yīng)下一個(gè)、刪除、上一個(gè)、設(shè)置或添加操作。這提供了快速失敗的行為,而不是面對(duì)迭代期間的并發(fā)修改時(shí)的不確定行為。

子類(lèi)對(duì)該字段的使用是可選的。如果一個(gè)子類(lèi)希望提供快速失敗的迭代器(和列表迭代器),那么它只需要在其 add(int, E) 和 remove(int) 方法(以及它覆蓋的任何其他導(dǎo)致結(jié)構(gòu)列表的修改)。對(duì) add(int, E) 或 remove(int) 的單個(gè)調(diào)用必須向該字段添加不超過(guò)一個(gè),否則迭代器(和列表迭代器)將拋出虛假的 ConcurrentModificationExceptions。如果實(shí)現(xiàn)不希望提供快速失敗的迭代器,則可以忽略此字段。

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

AbstractList

protected AbstractList()

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

方法詳情

add

public boolean add(E e)

將指定元素附加到此列表的末尾(可選操作)。

支持此操作的列表可能會(huì)限制可以添加到此列表的元素。 特別是,一些列表會(huì)拒絕添加空元素,而另一些列表則會(huì)對(duì)可能添加的元素類(lèi)型施加限制。 列表類(lèi)應(yīng)在其文檔中明確指定對(duì)可以添加哪些元素的任何限制。

此實(shí)現(xiàn)調(diào)用 add(size(), e)。

請(qǐng)注意,除非 add(int, E) 被覆蓋,否則此實(shí)現(xiàn)將引發(fā) UnsupportedOperationException。

指定者:

添加接口CollectionE

指定者:

添加接口ListE

覆蓋:

添加類(lèi) AbstractCollectionE

參數(shù):

參數(shù)名稱(chēng)參數(shù)描述
e要附加到此列表的元素

返回:

true(由 Collection#add 指定)

Throws:

Throw名稱(chēng)Throw描述
UnsupportedOperationException如果此列表不支持添加操作
ClassCastException如果指定元素的類(lèi)阻止它被添加到這個(gè)列表中
NullPointerException如果指定元素為空且此列表不允許空元素
IllegalArgumentException如果此元素的某些屬性阻止它被添加到此列表中

get

public abstract E get(int index)

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

指定者:

進(jìn)入接口 ListE

參數(shù):

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

返回:

此列表中指定位置的元素

Throws:

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

set

public E set(int index, E element)

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

此實(shí)現(xiàn)總是拋出 UnsupportedOperationException。

指定者:

在接口 ListE 中設(shè)置

參數(shù):

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

返回:

先前在指定位置的元素

Throws:

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

add

public void add(int index, E element)

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

此實(shí)現(xiàn)總是拋出 UnsupportedOperationException。

指定者:

添加接口ListE

參數(shù):

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

Throws:

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

remove

public E remove(int index)

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

此實(shí)現(xiàn)總是拋出 UnsupportedOperationException。

指定者:

在接口 ListE 中刪除

參數(shù):

參數(shù)名稱(chēng)參數(shù)描述
index要?jiǎng)h除的元素的索引

返回:

先前在指定位置的元素

Throws:

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

indexOf

public int indexOf(Object o)

返回此列表中指定元素第一次出現(xiàn)的索引,如果此列表不包含該元素,則返回 -1。 更正式地說(shuō),返回滿足 (o==null ? get(i)==null : o.equals(get(i))) 的最低索引 i,如果沒(méi)有這樣的索引,則返回 -1。

這個(gè)實(shí)現(xiàn)首先得到一個(gè)列表迭代器(使用 listIterator())。 然后,它遍歷列表,直到找到指定的元素或到達(dá)列表的末尾。

指定者:

接口 ListE 中的 indexOf

參數(shù):

參數(shù)名稱(chēng)參數(shù)描述
o要搜索的元素

返回:

此列表中指定元素第一次出現(xiàn)的索引,如果此列表不包含該元素,則為 -1

Throws:

Throw名稱(chēng)Throw描述
ClassCastException如果指定元素的類(lèi)型與此列表不兼容(可選)
NullPointerException如果指定元素為空且此列表不允許空元素(可選)

lastIndexOf

public int lastIndexOf(Object o)

返回此列表中指定元素最后一次出現(xiàn)的索引,如果此列表不包含該元素,則返回 -1。 更正式地說(shuō),返回滿足 (o==null ? get(i)==null : o.equals(get(i))) 的最高索引 i,如果沒(méi)有這樣的索引,則返回 -1。

此實(shí)現(xiàn)首先獲取一個(gè)指向列表末尾的列表迭代器(使用 listIterator(size()))。 然后,它在列表上向后迭代,直到找到指定的元素,或者到達(dá)列表的開(kāi)頭。

指定者:

接口 ListE 中的 lastIndexOf

參數(shù):

參數(shù)名稱(chēng)參數(shù)描述
o要搜索的元素

返回:

此列表中指定元素最后一次出現(xiàn)的索引,如果此列表不包含該元素,則為 -1

Throws:

Throw名稱(chēng)Throw描述
ClassCastException如果指定元素的類(lèi)型與此列表不兼容(可選)
NullPointerException如果指定元素為空且此列表不允許空元素(可選)

clear

public void clear()

從此列表中刪除所有元素(可選操作)。 此調(diào)用返回后,列表將為空。

此實(shí)現(xiàn)調(diào)用 removeRange(0, size())。

請(qǐng)注意,此實(shí)現(xiàn)拋出 UnsupportedOperationException 除非 remove(int index) 或 removeRange(int fromIndex, int toIndex) 被覆蓋。

指定者:

在界面 CollectionE 中清除

指定者:

在接口 ListE 中清除

覆蓋:

在類(lèi) AbstractCollectionE 中清除

Throws:

Throw名稱(chēng)Throw描述
UnsupportedOperationException如果此列表不支持清除操作

addAll

public boolean addAll(int index, Collection c)

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

此實(shí)現(xiàn)在指定集合上獲取一個(gè)迭代器并對(duì)其進(jìn)行迭代,使用 add(int, E) 將從迭代器獲得的元素插入到此列表中的適當(dāng)位置,一次一個(gè)。許多實(shí)現(xiàn)將覆蓋此方法以提高效率。

請(qǐng)注意,除非 add(int, E) 被覆蓋,否則此實(shí)現(xiàn)將引發(fā) UnsupportedOperationException。

指定者:

接口 ListE 中的 addAll

參數(shù):

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

返回:

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

Throws:

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

iterator

public IteratorE iterator()

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

此實(shí)現(xiàn)返回迭代器接口的簡(jiǎn)單實(shí)現(xiàn),依賴(lài)于后備列表的 size()、get(int) 和 remove(int) 方法。

請(qǐng)注意,此方法返回的迭代器將拋出 UnsupportedOperationException 以響應(yīng)其 remove 方法,除非列表的 remove(int) 方法被覆蓋。

可以使此實(shí)現(xiàn)在面對(duì)并發(fā)修改時(shí)拋出運(yùn)行時(shí)異常,如(受保護(hù)的)modCount 字段的規(guī)范中所述。

指定者:

接口 CollectionE 中的迭代器

指定者:

接口 IterableE 中的迭代器

指定者:

接口 ListE 中的迭代器

指定者:

AbstractCollectionE 類(lèi)中的迭代器

返回:

以正確順序遍歷此列表中的元素的迭代器

listIterator

public ListIteratorE listIterator()

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

此實(shí)現(xiàn)返回 listIterator(0)。

指定者:

接口 ListE 中的 listIterator

返回:

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

listIterator

public ListIteratorE listIterator(int index)

返回此列表中元素的列表迭代器(以正確的順序),從列表中的指定位置開(kāi)始。指定的索引指示初始調(diào)用 ListIterator#next 將返回的第一個(gè)元素。對(duì) ListIterator#previous 的初始調(diào)用將返回具有指定索引減一的元素。

此實(shí)現(xiàn)返回 ListIterator 接口的直接實(shí)現(xiàn),它擴(kuò)展了 iterator() 方法返回的 Iterator 接口的實(shí)現(xiàn)。 ListIterator 實(shí)現(xiàn)依賴(lài)于后備列表的 get(int)、set(int, E)、add(int, E) 和 remove(int) 方法。

請(qǐng)注意,此實(shí)現(xiàn)返回的列表迭代器將拋出 UnsupportedOperationException 以響應(yīng)其 remove、set 和 add 方法,除非列表的 remove(int)、set(int, E) 和 add(int, E) 方法被覆蓋。

可以使此實(shí)現(xiàn)在面對(duì)并發(fā)修改時(shí)拋出運(yùn)行時(shí)異常,如(受保護(hù)的)modCount 字段的規(guī)范中所述。

指定者:

接口 ListE 中的 listIterator

參數(shù):

參數(shù)名稱(chēng)參數(shù)描述
index要從列表迭代器返回的第一個(gè)元素的索引(通過(guò)調(diào)用 ListIterator#next)

返回:

此列表中元素的列表迭代器(按正確順序),從列表中的指定位置開(kāi)始

Throws:

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

subList

public ListE subList(int fromIndex, int toIndex)

返回此列表在指定的 fromIndex(包括)和 toIndex(不包括)之間的部分的視圖。 (如果 fromIndex 和 toIndex 相等,則返回列表為空。)返回列表由此列表支持,因此返回列表中的非結(jié)構(gòu)性更改會(huì)反映在此列表中,反之亦然。 返回的列表支持此列表支持的所有可選列表操作。

這種方法消除了顯式范圍操作的需要(通常存在于數(shù)組中的那種)。 通過(guò)傳遞 subList 視圖而不是整個(gè)列表,任何需要列表的操作都可以用作范圍操作。 例如,以下習(xí)慣用法從列表中刪除一系列元素:

      list.subList(from, to).clear();

可以為 indexOf 和 lastIndexOf 構(gòu)造類(lèi)似的習(xí)語(yǔ),并且 Collections 類(lèi)中的所有算法都可以應(yīng)用于子列表。

如果后備列表(即此列表)以除通過(guò)返回列表之外的任何方式進(jìn)行結(jié)構(gòu)修改,則此方法返回的列表的語(yǔ)義將變?yōu)槲炊x。 (結(jié)構(gòu)修改是改變這個(gè)列表的大小,或者以其他方式擾亂它,使得正在進(jìn)行的迭代可能會(huì)產(chǎn)生不正確的結(jié)果。)

此實(shí)現(xiàn)返回一個(gè)子類(lèi) AbstractList 的列表。子類(lèi)在私有字段中存儲(chǔ)子列表在后備列表中的偏移量、子列表的大小(可以在其生命周期內(nèi)更改)以及后備列表的預(yù)期 modCount 值。該子類(lèi)有兩種變體,其中一種實(shí)現(xiàn)了 RandomAccess。如果此列表實(shí)現(xiàn)了 RandomAccess,則返回的列表將是實(shí)現(xiàn) RandomAccess 的子類(lèi)的一個(gè)實(shí)例。

子類(lèi)的 set(int, E)、get(int)、add(int, E)、remove(int)、addAll(int, Collection) 和 removeRange(int, int) 方法都委托給支持抽象的相應(yīng)方法列表,在邊界檢查索引和調(diào)整偏移量之后。 addAll(Collection c) 方法只返回 addAll(size, c)。

listIterator(int) 方法在后備列表上的列表迭代器上返回一個(gè)“包裝器對(duì)象”,該迭代器是使用后備列表上的相應(yīng)方法創(chuàng)建的。 iterator 方法只返回 listIterator(),size 方法只返回子類(lèi)的 size 字段。

所有方法首先檢查后備列表的實(shí)際 modCount 是否等于其預(yù)期值,如果不等于則拋出 ConcurrentModificationException。

指定者:

接口 ListE 中的子列表

參數(shù):

參數(shù)名稱(chēng)參數(shù)描述
fromIndexsubList 的低端點(diǎn)(包括)
toIndexsubList 的高端(不包括)

返回:

此列表中指定范圍的視圖

Throws:

Throw名稱(chēng)Throw描述
IndexOutOfBoundsException如果端點(diǎn)索引值超出范圍(fromIndex < 0 || toIndex > size)
IllegalArgumentException如果端點(diǎn)索引亂序(fromIndex > toIndex)

equals

public boolean equals(Object o)

比較指定對(duì)象與此列表是否相等。當(dāng)且僅當(dāng)指定對(duì)象也是一個(gè)列表時(shí)返回 true,兩個(gè)列表具有相同的大小,并且兩個(gè)列表中所有對(duì)應(yīng)的元素對(duì)都相等。 (如果 (e1==null ? e2==null : e1.equals(e2)) 兩個(gè)元素 e1 和 e2 相等。)換句話說(shuō),如果兩個(gè)列表以相同的順序包含相同的元素,則它們被定義為相等.

這個(gè)實(shí)現(xiàn)首先檢查指定的對(duì)象是否是這個(gè)列表。如果是,則返回 true;如果不是,它檢查指定的對(duì)象是否是一個(gè)列表。如果不是,則返回 false;如果是這樣,它會(huì)遍歷兩個(gè)列表,比較相應(yīng)的元素對(duì)。如果任何比較返回 false,則此方法返回 false。如果其中一個(gè)迭代器在另一個(gè)迭代器之前用完元素,則返回 false(因?yàn)榱斜淼拈L(zhǎng)度不等);否則在迭代完成時(shí)返回 true。

指定者:

接口 CollectionE 中的等于

指定者:

接口 ListE 中的等于

覆蓋:

類(lèi) Object 中的等于

參數(shù):

參數(shù)名稱(chēng)參數(shù)描述
o要與此列表比較是否相等的對(duì)象

返回:

如果指定的對(duì)象等于此列表,則為 true

hashCode

public int hashCode()

返回此列表的哈希碼值。

此實(shí)現(xiàn)完全使用用于在 List#hashCode 方法的文檔中定義列表哈希函數(shù)的代碼。

指定者:

接口 CollectionE 中的 hashCode

指定者:

接口 ListE 中的 hashCode

覆蓋:

類(lèi) Object 中的 hashCode

返回:

此列表的哈希碼值

removeRange

protected void removeRange(int fromIndex, int toIndex)

從此列表中刪除索引在 fromIndex(包括)和 toIndex(不包括)之間的所有元素。 將任何后續(xù)元素向左移動(dòng)(減少它們的索引)。 此調(diào)用通過(guò) (toIndex - fromIndex) 元素縮短列表。 (如果toIndex==fromIndex,則此操作無(wú)效。)

此方法由對(duì)該列表及其子列表的清除操作調(diào)用。 重寫(xiě)此方法以利用列表實(shí)現(xiàn)的內(nèi)部結(jié)構(gòu)可以顯著提高此列表及其子列表上的清除操作的性能。

此實(shí)現(xiàn)獲取一個(gè)位于 fromIndex 之前的列表迭代器,并重復(fù)調(diào)用 ListIterator.next 后跟 ListIterator.remove,直到整個(gè)范圍都被刪除。 注意:如果 ListIterator.remove 需要線性時(shí)間,則此實(shí)現(xiàn)需要二次時(shí)間。

參數(shù):

參數(shù)名稱(chēng)參數(shù)描述
fromIndex要?jiǎng)h除的第一個(gè)元素的索引
toIndex要?jiǎng)h除的最后一個(gè)元素之后的索引

文章題目:創(chuàng)新互聯(lián)鴻蒙OS教程:鴻蒙OS AbstractList
當(dāng)前路徑:http://www.5511xx.com/article/cocdjhd.html