新聞中心
List

public interface List
extends Collection 有序集合(也稱為序列)。 此界面的用戶可以精確控制每個(gè)元素在列表中的插入位置。 用戶可以通過(guò)整數(shù)索引(列表中的位置)訪問(wèn)元素,并在列表中搜索元素。
與集合不同,列表通常允許重復(fù)元素。 更正式地說(shuō),列表通常允許元素 e1 和 e2 對(duì),例如 e1.equals(e2),并且如果它們完全允許 null 元素,它們通常允許多個(gè) null 元素。 有人可能希望通過(guò)在用戶嘗試插入它們時(shí)拋出運(yùn)行時(shí)異常來(lái)實(shí)現(xiàn)一個(gè)禁止重復(fù)的列表,這并非不可想象,但我們希望這種用法很少見(jiàn)。
List 接口對(duì)迭代器、add、remove、equals 和 hashCode 方法的合約添加了超出 Collection 接口中指定的附加規(guī)定。 為方便起見(jiàn),此處還包括其他繼承方法的聲明。
List 接口提供了四種對(duì)列表元素進(jìn)行位置(索引)訪問(wèn)的方法。 列表(如 Java 數(shù)組)是從零開(kāi)始的。 請(qǐng)注意,對(duì)于某些實(shí)現(xiàn)(例如 LinkedList 類),這些操作的執(zhí)行時(shí)間可能與索引值成正比。 因此,如果調(diào)用者不知道實(shí)現(xiàn),則迭代列表中的元素通常比通過(guò)它索引更可取。
List 接口提供了一個(gè)特殊的迭代器,稱為 ListIterator,除了 Iterator 接口提供的正常操作之外,它還允許元素插入和替換以及雙向訪問(wèn)。 提供了一種方法來(lái)獲取從列表中指定位置開(kāi)始的列表迭代器。
List 接口提供了兩種方法來(lái)搜索指定的對(duì)象。 從性能的角度來(lái)看,應(yīng)謹(jǐn)慎使用這些方法。 在許多實(shí)現(xiàn)中,它們將執(zhí)行代價(jià)高昂的線性搜索。
List 接口提供了兩種方法來(lái)有效地在列表中的任意點(diǎn)插入和刪除多個(gè)元素。
注意:雖然允許列表將自身包含為元素,但建議格外小心:equals 和 hashCode 方法不再在此類列表上得到很好的定義。
一些列表實(shí)現(xiàn)對(duì)它們可能包含的元素有限制。 例如,一些實(shí)現(xiàn)禁止空元素,而一些實(shí)現(xiàn)對(duì)其元素的類型有限制。 嘗試添加不合格的元素會(huì)引發(fā)未經(jīng)檢查的異常,通常是 NullPointerException 或 ClassCastException。 嘗試查詢不合格元素的存在可能會(huì)引發(fā)異常,或者它可能只是返回 false; 一些實(shí)現(xiàn)會(huì)表現(xiàn)出前一種行為,而另一些會(huì)表現(xiàn)出后者。 更一般地,嘗試對(duì)不合格元素進(jìn)行操作,其完成不會(huì)導(dǎo)致將不合格元素插入到列表中,這可能會(huì)引發(fā)異常,也可能會(huì)成功,這取決于實(shí)現(xiàn)的選擇。 此類異常在此接口的規(guī)范中被標(biāo)記為“可選”。
此接口是 Java 集合框架的成員。
方法總結(jié)
| 修飾符和類型 | 方法 | 描述 |
|---|---|---|
| void | add(int index, E element) | 在此列表中的指定位置插入指定元素(可選操作)。 |
| boolean | add(E e) | 將指定元素附加到此列表的末尾(可選操作)。 |
| boolean | addAll(int index, Collection extends E> c) | 將指定集合中的所有元素插入到此列表中的指定位置(可選操作)。 |
| boolean | addAll(Collection extends E> c) | 將指定集合中的所有元素附加到此列表的末尾,按照指定集合的迭代器返回的順序(可選操作)。 |
| void | clear() | 從此列表中刪除所有元素(可選操作)。 |
| boolean | contains(Object o) | 如果此列表包含指定元素,則返回 true。 |
| boolean | containsAll(Collection> c) | 如果此列表包含指定集合的所有元素,則返回 true。 |
| boolean | equals(Object o) | 比較指定對(duì)象與此列表是否相等。 |
| E | get(int index) | 返回此列表中指定位置的元素。 |
| int | hashCode() | 返回此列表的哈希碼值。 |
| int | indexOf(Object o) | 返回此列表中指定元素第一次出現(xiàn)的索引,如果此列表不包含該元素,則返回 -1。 |
| boolean | isEmpty() | 如果此列表不包含任何元素,則返回 true。 |
| IteratorE | iterator() | 以正確的順序返回此列表中元素的迭代器。 |
| int | lastIndexOf(Object o) | 返回此列表中指定元素最后一次出現(xiàn)的索引,如果此列表不包含該元素,則返回 -1。 |
| ListIteratorE | listIterator() | 返回此列表中元素的列表迭代器(以正確的順序)。 |
| ListIteratorE | listIterator(int index) | 返回此列表中元素的列表迭代器(以正確的順序),從列表中的指定位置開(kāi)始。 |
| E | remove(int index) | 移除此列表中指定位置的元素(可選操作)。 |
| boolean | remove(Object o) | 如果指定元素存在,則從該列表中刪除第一次出現(xiàn)的指定元素(可選操作)。 |
| boolean | removeAll(Collection> c) | 從此列表中刪除包含在指定集合中的所有元素(可選操作)。 |
| default void | replaceAll(UnaryOperatorE operator) | 將此列表的每個(gè)元素替換為將運(yùn)算符應(yīng)用于該元素的結(jié)果。 |
| boolean | retainAll(Collection> c) | 僅保留此列表中包含在指定集合中的元素(可選操作)。 |
| E | set(int index, E element) | 將此列表中指定位置的元素替換為指定元素(可選操作)。 |
| int | size() | 返回此列表中的元素?cái)?shù)。 |
| default void | sort(Comparator super E> c) | 根據(jù)指定 Comparator 產(chǎn)生的順序?qū)υ摿斜磉M(jìn)行排序。 |
| default SpliteratorE | spliterator() | 在此列表中的元素上創(chuàng)建一個(gè) Spliterator。 |
| ListE | subList(int fromIndex, int toIndex) | 返回此列表在指定的 fromIndex(包括)和 toIndex(不包括)之間的部分的視圖。 |
| Object[] | toArray() | 以正確的順序(從第一個(gè)元素到最后一個(gè)元素)返回包含此列表中所有元素的數(shù)組。 |
| toArray(T[] a) | 以正確的順序(從第一個(gè)元素到最后一個(gè)元素)返回一個(gè)包含此列表中所有元素的數(shù)組; 返回?cái)?shù)組的運(yùn)行時(shí)類型是指定數(shù)組的運(yùn)行時(shí)類型。 |
| 從接口 java.util.Collection 繼承的方法 |
|---|
| parallelStream, removeIf, stream |
| 從接口 java.lang.Iterable 繼承的方法 |
|---|
| forEach |
方法詳情
size
int size()
返回此列表中的元素?cái)?shù)。 如果此列表包含多個(gè) Integer.MAX_VALUE 元素,則返回 Integer.MAX_VALUE。
指定者:
接口 CollectionE 中的大小
返回:
此列表中的元素?cái)?shù)
isEmpty
boolean isEmpty()
如果此列表不包含任何元素,則返回 true。
指定者:
接口 CollectionE 中的 isEmpty
返回:
如果此列表不包含任何元素,則為 true
contains
boolean contains(Object o)
如果此列表包含指定元素,則返回 true。 更正式地說(shuō),當(dāng)且僅當(dāng)此列表包含至少一個(gè)元素 e 滿足 (o==null ? e==null : o.equals(e)) 時(shí),才返回 true。
指定者:
包含在接口 CollectionE 中
參數(shù):
| 參數(shù)名稱 | 參數(shù)描述 |
|---|---|
| o | 要測(cè)試其在此列表中的存在的元素 |
返回:
如果此列表包含指定元素,則為 true
Throws:
| Throw名稱 | Throw描述 |
|---|---|
| ClassCastException | 如果指定元素的類型與此列表不兼容(可選) |
| NullPointerException | 如果指定元素為空且此列表不允許空元素(可選) |
iterator
IteratorE iterator()
以正確的順序返回此列表中元素的迭代器。
指定者:
接口 CollectionE 中的迭代器
指定者:
接口 IterableE 中的迭代器
返回:
以正確順序遍歷此列表中的元素的迭代器
toArray
Object[] toArray()
以正確的順序(從第一個(gè)元素到最后一個(gè)元素)返回包含此列表中所有元素的數(shù)組。
返回的數(shù)組將是“安全的”,因?yàn)榇肆斜聿痪S護(hù)對(duì)它的引用。 (換句話說(shuō),即使此列表由數(shù)組支持,此方法也必須分配一個(gè)新數(shù)組)。 因此,調(diào)用者可以自由修改返回的數(shù)組。
此方法充當(dāng)基于數(shù)組和基于集合的 API 之間的橋梁。
指定者:
接口 CollectionE 中的 toArray
返回:
以正確順序包含此列表中所有元素的數(shù)組
toArray
以正確的順序(從第一個(gè)元素到最后一個(gè)元素)返回一個(gè)包含此列表中所有元素的數(shù)組;返回?cái)?shù)組的運(yùn)行時(shí)類型是指定數(shù)組的運(yùn)行時(shí)類型。如果列表適合指定的數(shù)組,則在其中返回。否則,將使用指定數(shù)組的運(yùn)行時(shí)類型和此列表的大小分配一個(gè)新數(shù)組。
如果列表適合指定的數(shù)組并有剩余空間(即,數(shù)組的元素多于列表),則數(shù)組中緊隨列表末尾的元素設(shè)置為 null。 (僅當(dāng)調(diào)用者知道列表不包含任何空元素時(shí),這對(duì)確定列表的長(zhǎng)度很有用。)
與 toArray() 方法一樣,此方法充當(dāng)基于數(shù)組的 API 和基于集合的 API 之間的橋梁。此外,此方法允許對(duì)輸出數(shù)組的運(yùn)行時(shí)類型進(jìn)行精確控制,并且在某些情況下可用于節(jié)省分配成本。
假設(shè) x 是一個(gè)已知僅包含字符串的列表。以下代碼可用于將列表轉(zhuǎn)儲(chǔ)到新分配的 String 數(shù)組中:
String[] y = x.toArray(new String[0]); 請(qǐng)注意,toArray(new Object[0]) 在功能上與 toArray() 相同。
指定者:
接口 CollectionE 中的 toArray
類型參數(shù):
| 類型參數(shù)名稱 | 類型參數(shù)描述 |
|---|---|
| T | 包含集合的數(shù)組的運(yùn)行時(shí)類型 |
參數(shù):
| 參數(shù)名稱 | 參數(shù)描述 |
|---|---|
| a | 這個(gè)列表的元素要存儲(chǔ)到的數(shù)組,如果它足夠大的話; 否則,將為此目的分配相同運(yùn)行時(shí)類型的新數(shù)組。 |
返回:
包含此列表元素的數(shù)組
Throws:
| Throw名稱 | Throw描述 |
|---|---|
| ArrayStoreException | 如果指定數(shù)組的運(yùn)行時(shí)類型不是此列表中每個(gè)元素的運(yùn)行時(shí)類型的超類型 |
| NullPointerException | 如果指定的數(shù)組為空 |
add
boolean add(E e)
將指定元素附加到此列表的末尾(可選操作)。
支持此操作的列表可能會(huì)限制可以添加到此列表的元素。 特別是,一些列表會(huì)拒絕添加空元素,而另一些列表則會(huì)對(duì)可能添加的元素類型施加限制。 列表類應(yīng)在其文檔中明確指定對(duì)可以添加哪些元素的任何限制。
指定者:
添加接口CollectionE
參數(shù):
| 參數(shù)名稱 | 參數(shù)描述 |
|---|---|
| e | 要附加到此列表的元素 |
返回:
true(由 Collection#add 指定)
Throws:
| Throw名稱 | Throw描述 |
|---|---|
| UnsupportedOperationException | 如果此列表不支持添加操作 |
| ClassCastException | 如果指定元素的類阻止它被添加到這個(gè)列表中 |
| NullPointerException | 如果指定元素為空且此列表不允許空元素 |
| IllegalArgumentException | 如果此元素的某些屬性阻止它被添加到此列表中 |
remove
boolean remove(Object o)
如果指定元素存在,則從該列表中刪除第一次出現(xiàn)的指定元素(可選操作)。 如果此列表不包含該元素,則它不變。 更正式地說(shuō),刪除具有最低索引 i 的元素,使得 (o==null ? get(i)==null : o.equals(get(i))) (如果存在這樣的元素)。 如果此列表包含指定的元素(或等效地,如果此列表因調(diào)用而更改),則返回 true。
指定者:
在接口 CollectionE 中刪除
參數(shù):
| 參數(shù)名稱 | 參數(shù)描述 |
|---|---|
| o | 要從此列表中刪除的元素(如果存在) |
返回:
如果此列表包含指定元素,則為 true
Throws:
| Throw名稱 | Throw描述 |
|---|---|
| ClassCastException | 如果指定元素的類型與此列表不兼容(可選) |
| NullPointerException | 如果指定元素為空且此列表不允許空元素(可選) |
| UnsupportedOperationException | 如果此列表不支持刪除操作 |
containsAll
boolean containsAll(Collection> c)
如果此列表包含指定集合的所有元素,則返回 true。
指定者:
接口 CollectionE 中的 containsAll
參數(shù):
| 參數(shù)名稱 | 參數(shù)描述 |
|---|---|
| c | 要檢查此列表中包含的集合 |
返回:
如果此列表包含指定集合的所有元素,則為 true
Throws:
| Throw名稱 | Throw描述 |
|---|---|
| ClassCastException | 如果指定集合中的一個(gè)或多個(gè)元素的類型與此列表不兼容(可選) |
| NullPointerException | 如果指定的集合包含一個(gè)或多個(gè)空元素并且此列表不允許空元素(可選),或者指定的集合為空 |
addAll
boolean addAll(Collection extends E> c)
將指定集合中的所有元素附加到此列表的末尾,按照指定集合的迭代器返回的順序(可選操作)。 如果在操作正在進(jìn)行時(shí)修改了指定的集合,則此操作的行為是未定義的。 (請(qǐng)注意,如果指定的集合是這個(gè)列表,并且它是非空的,則會(huì)發(fā)生這種情況。)
指定者:
接口 CollectionE 中的 addAll
參數(shù):
| 參數(shù)名稱 | 參數(shù)描述 |
|---|---|
| c | 包含要添加到此列表的元素的集合 |
返回:
如果此列表因調(diào)用而更改,則為 true
Throws:
| Throw名稱 | Throw描述 |
|---|---|
| UnsupportedOperationException | 如果此列表不支持 addAll 操作 |
| ClassCastException | 如果指定集合的元素的類阻止它被添加到此列表中 |
| NullPointerException | 如果指定的集合包含一個(gè)或多個(gè)空元素并且此列表不允許空元素,或者指定的集合為空 |
| IllegalArgumentException | 如果指定集合的某個(gè)元素的某些屬性阻止它被添加到此列表中 |
addAll
boolean addAll(int index, Collection extends E> c)
將指定集合中的所有元素插入到此列表中的指定位置(可選操作)。 將當(dāng)前位于該位置的元素(如果有)和任何后續(xù)元素向右移動(dòng)(增加它們的索引)。 新元素將按照指定集合的迭代器返回的順序出現(xiàn)在此列表中。 如果在操作正在進(jìn)行時(shí)修改了指定的集合,則此操作的行為是未定義的。 (請(qǐng)注意,如果指定的集合是這個(gè)列表,并且它是非空的,則會(huì)發(fā)生這種情況。)
參數(shù):
| 參數(shù)名稱 | 參數(shù)描述 |
|---|---|
| index | 插入指定集合中第一個(gè)元素的索引 |
| c | 包含要添加到此列表的元素的集合 |
返回:
如果此列表因調(diào)用而更改,則為 true
Throws:
| Throw名稱 | Throw描述 |
|---|---|
| UnsupportedOperationException | 如果此列表不支持 addAll 操作 |
| ClassCastException | 如果指定集合的元素的類阻止它被添加到此列表中 |
| NullPointerException | 如果指定的集合包含一個(gè)或多個(gè)空元素并且此列表不允許空元素,或者指定的集合為空 |
| IllegalArgumentException | 如果指定集合的某個(gè)元素的某些屬性阻止它被添加到此列表中 |
| IndexOutOfBoundsException | 如果索引超出范圍 (index < 0 || index > size()) |
removeAll
boolean removeAll(Collection> c)
從此列表中刪除包含在指定集合中的所有元素(可選操作)。
指定者:
接口 CollectionE 中的 removeAll
參數(shù):
| 參數(shù)名稱 | 參數(shù)描述 |
|---|---|
| c | 包含要從此列表中刪除的元素的集合 |
返回:
如果此列表因調(diào)用而更改,則為 true
Throws:
| Throw名稱 | Throw描述 |
|---|---|
| UnsupportedOperationException | 如果此列表不支持 removeAll 操作 |
| ClassCastException | 如果此列表的某個(gè)元素的類與指定的集合不兼容(可選) |
| NullPointerException | 如果此列表包含空元素并且指定的集合不允許空元素(可選),或者指定的集合為空 |
retainAll
boolean retainAll(Collection> c)
僅保留此列表中包含在指定集合中的元素(可選操作)。 換句話說(shuō),從這個(gè)列表中刪除所有不包含在指定集合中的元素。
指定者:
接口CollectionE中的retainAll
參數(shù):
| 參數(shù)名稱 | 參數(shù)描述 |
|---|---|
| c | 包含要保留在此列表中的元素的集合 |
返回:
如果此列表因調(diào)用而更改,則為 true
Throws:
| Throw名稱 | Throw描述 |
|---|---|
| UnsupportedOperationException | 如果此列表不支持 retainAll 操作 |
| ClassCastException | 如果此列表的某個(gè)元素的類與指定的集合不兼容(可選) |
| NullPointerException | 如果此列表包含空元素并且指定的集合不允許空元素(可選),或者指定的集合為空 |
replaceAll
default void replaceAll(UnaryOperatorE operator)
將此列表的每個(gè)元素替換為將運(yùn)算符應(yīng)用于該元素的結(jié)果。 操作員拋出的錯(cuò)誤或運(yùn)行時(shí)異常被轉(zhuǎn)發(fā)給調(diào)用者。
參數(shù):
| 參數(shù)名稱 | 參數(shù)描述 |
|---|---|
| operator | 應(yīng)用于每個(gè)元素的運(yùn)算符 |
Throws:
| Throw名稱 | Throw描述 |
|---|---|
| UnsupportedOperationException | 如果此列表不可修改。 如果無(wú)法替換元素或通常不支持修改,則實(shí)現(xiàn)可能會(huì)拋出此異常 |
| NullPointerException | 如果指定的運(yùn)算符為空或運(yùn)算符結(jié)果為空值且此列表不允許空元素(可選) |
sort
default void sort(Comparator super E> c)
根據(jù)指定 Comparator 產(chǎn)生的順序?qū)υ摿斜磉M(jìn)行排序。
此列表中的所有元素必須使用指定的比較器進(jìn)行相互比較(即 c.compare(e1, e2) 不得為列表中的任何元素 e1 和 e2 拋出 ClassCastException)。
如果指定的比較器為空,則此列表中的所有元素都必須實(shí)現(xiàn) Comparable 接口,并且應(yīng)使用元素的 Comparable。
此列表必須是可修改的,但不需要調(diào)整大小。
參數(shù):
| 參數(shù)名稱 | 參數(shù)描述 |
|---|---|
| c | Comparator 用于比較列表元素。 空值表示應(yīng)該使用元素的 Comparable |
Throws:
| Throw名稱 | Throw描述 |
|---|---|
| ClassCastException | 如果列表包含使用指定比較器不能相互比較的元素 |
| UnsupportedOperationException | 如果列表的列表迭代器不支持設(shè)置操作 |
| IllegalArgumentException | (可選)如果發(fā)現(xiàn)比較器違反了比較器合同 |
clear
void clear()
從此列表中刪除所有元素(可選操作)。 此調(diào)用返回后,列表將為空。
指定者:
在界面 CollectionE 中清除
Throws:
| Throw名稱 | Throw描述 |
|---|---|
| UnsupportedOperationException | 如果此列表不支持清除操作 |
equals
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è)列表以相同的順序包含相同的元素,則它們被定義為相等 . 此定義確保 equals 方法在 List 接口的不同實(shí)現(xiàn)中正常工作。
指定者:
接口 CollectionE 中的等于
覆蓋:
類 Object 中的等于
參數(shù):
| 參數(shù)名稱 | 參數(shù)描述 |
|---|---|
| o | 要與此列表比較是否相等的對(duì)象 |
返回:
如果指定的對(duì)象等于此列表,則為 true
hashCode
int hashCode()
返回此列表的哈希碼值。 列表的哈希碼定義為以下計(jì)算的結(jié)果:
int hashCode = 1;
for (E e : list)
hashCode = 31*hashCode + (e==null ? 0 : e.hashCode());
這確保 list1.equals(list2) 意味著 list1.hashCode()==list2.hashCode() 對(duì)于任何兩個(gè)列表 list1 和 list2,這是 Object#hashCode 的一般合同所要求的。
指定者:
接口 CollectionE 中的 hashCode
覆蓋:
類 Object 中的 hashCode
返回:
此列表的哈希碼值
get
E get(int index)
返回此列表中指定位置的元素。
參數(shù):
| 參數(shù)名稱 | 參數(shù)描述 |
|---|---|
| index | 要返回的元素的索引 |
返回:
此列表中指定位置的元素
Throws:
| Throw名稱 | Throw描述 |
|---|---|
| IndexOutOfBoundsException | 如果索引超出范圍 (index < 0 || index >= size()) |
set
E set(int index, E element)
將此列表中指定位置的元素替換為指定元素(可選操作)。
參數(shù):
| 參數(shù)名稱 | 參數(shù)描述 |
|---|---|
| index | 要替換的元素的索引 |
| element | 要存儲(chǔ)在指定位置的元素 |
返回:
先前在指定位置的元素
Throws:
| Throw名稱 | Throw描述 |
|---|---|
| UnsupportedOperationException | 如果此列表不支持設(shè)置操作 |
| ClassCastException | 如果指定元素的類阻止它被添加到這個(gè)列表中 |
| NullPointerException | 如果指定元素為空且此列表不允許空元素 |
| IllegalArgumentException | 如果指定元素的某些屬性阻止它被添加到此列表中 |
| IndexOutOfBoundsException | 如果索引超出范圍 (index < 0 || index >= size()) |
add
void add(int index, E element)
在此列表中的指定位置插入指定元素(可選操作)。 將當(dāng)前位于該位置的元素(如果有)和任何后續(xù)元素向右移動(dòng)(將其索引加一)。
參數(shù):
| 參數(shù)名稱 | 參數(shù)描述 |
|---|---|
| index | 要插入指定元素的索引 |
| element | 要插入的元素 |
Throws:
| Throw名稱 | Throw描述 |
|---|---|
| UnsupportedOperationException | 如果此列表不支持添加操作 |
| ClassCastException | 如果指定元素的類阻止它被添加到這個(gè)列表中 |
| NullPointerException | 如果指定元素為空且此列表不允許空元素 |
| IllegalArgumentException | 如果指定元素的某些屬性阻止它被添加到此列表中 |
| IndexOutOfBoundsException | 如果索引超出范圍 (index < 0 || index > size()) |
remove
E remove(int index)
移除此列表中指定位置的元素(可選操作)。 將任何后續(xù)元素向左移動(dòng)(從它們的索引中減去 1)。 返回從列表中刪除的元素。
參數(shù):
| 參數(shù)名稱 | 參數(shù)描述 |
|---|---|
| index | 要?jiǎng)h除的元素的索引 |
返回:
先前在指定位置的元素
Throws:
| Throw名稱 | Throw描述 |
|---|---|
| UnsupportedOperationException | 如果此列表不支持刪除操作 |
| IndexOutOfBoundsException | 如果索引超出范圍 (index < 0 || index >= size()) |
indexOf
int indexOf(Object o)
返回此列表中指定元素第一次出現(xiàn)的索引,如果此列表不包含該元素,則返回 -1。 更正式地說(shuō),返回滿足 (o==null ? get(i)==null : o.equals(get(i))) 的最低索引 i,如果沒(méi)有這樣的索引,則返回 -1。
參數(shù):
| 參數(shù)名稱 | 參數(shù)描述 |
|---|---|
| o | 要搜索的元素 |
返回:
此列表中指定元素第一次出現(xiàn)的索引,如果此列表不包含該元素,則為 -1
Throws:
| Throw名稱 | Throw描述 |
|---|---|
| ClassCastException | 如果指定元素的類型與此列表不兼容(可選) |
| NullPointerException | 如果指定元素為空且此列表不允許空元素(可選) |
lastIndexOf
int lastIndexOf(Object o)
返回此列表中指定元素最后一次出現(xiàn)的索引,如果此列表不包含該元素,則返回 -1。 更正式地說(shuō),返回滿足 (o==null ? get(i)==null : o.equals(get(i))) 的最高索引 i,如果沒(méi)有這樣的索引,則返回 -1。
參數(shù):
| 參數(shù)名稱 | 參數(shù)描述 |
|---|---|
| o | 要搜索的元素 |
返回:
此列表中指定元素最后一次出現(xiàn)的索引,如果此列表不包含該元素,則為 -1
Throws:
| Throw名稱 | Throw描述 |
|---|---|
| ClassCastException | 如果指定元素的類型與此列表不兼容(可選) |
| NullPointerException | 如果指定元素為空且此列表不允許空元素(可選) |
listIterator
ListIteratorE listIterator()
返回此列表中元素的列表迭代器(以正確的順序)。
返回:
此列表中元素的列表迭代器(按正確順序)
listIterator
ListIteratorE listIterator(int index)
返回此列表中元素的列表迭代器(以正確的順序),從列表中的指定位置開(kāi)始。 指定的索引指示初始調(diào)用 ListIterator#next 將返回的第一個(gè)元素。 對(duì) ListIterator#previous 的初始調(diào)用將返回具有指定索引減一的元素。
參數(shù):
| 參數(shù)名稱 | 參數(shù)描述 |
|---|---|
| index | 要從列表迭代器返回的第一個(gè)元素的索引(通過(guò)調(diào)用 ListIterator#next) |
返回:
此列表中元素的列表迭代器(按正確順序),從列表中的指定位置開(kāi)始
Throws:
| Throw名稱 | Throw描述 |
|---|---|
| IndexOutOfBoundsException | 如果索引超出范圍 (index < 0 || index > size()) |
subList
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)造類似的習(xí)語(yǔ),并且 Collections 類中的所有算法都可以應(yīng)用于子列表。
如果后備列表(即此列表)以除通過(guò)返回列表之外的任何方式進(jìn)行結(jié)構(gòu)修改,則此方法返回的列表的語(yǔ)義將變?yōu)槲炊x。 (結(jié)構(gòu)修改是改變這個(gè)列表的大小,或者以其他方式擾亂它,使得正在進(jìn)行的迭代可能會(huì)產(chǎn)生不正確的結(jié)果。)
參數(shù):
| 參數(shù)名稱 | 參數(shù)描述 |
|---|---|
| fromIndex | subList 的低端點(diǎn)(包括) |
| toIndex | subList 的高端(不包括) |
返回:
此列表中指定范圍的視圖
Throws:
| Throw名稱 | Throw描述 |
|---|---|
| IndexOutOfBoundsException | 對(duì)于非法端點(diǎn)索引值(fromIndex < 0 || toIndex > size || fromIndex > toIndex) |
spliterator
default SpliteratorE spliterator()
在此列表中的元素上創(chuàng)建一個(gè) Spliterator。
Spliterator 報(bào)告 Spliterator#SIZED 和 Spliterator#ORDERED。 實(shí)施應(yīng)記錄附加特征值的報(bào)告。
指定者:
接口 CollectionE 中的分離器
指定者:
接口 IterableE 中的分離器
返回:
此列表中元素的拆分器
新聞名稱:創(chuàng)新互聯(lián)鴻蒙OS教程:鴻蒙OSList
網(wǎng)頁(yè)URL:http://m.5511xx.com/article/cdpehid.html


咨詢
建站咨詢
