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

RELATEED CONSULTING
相關咨詢
選擇下列產品馬上在線溝通
服務時間:8:30-17:00
你可能遇到了下面的問題
關閉右側工具欄

新聞中心

這里有您想知道的互聯網營銷解決方案
創(chuàng)新互聯鴻蒙OS教程:鴻蒙OSCollection

Collection

在潞州等地區(qū),都構建了全面的區(qū)域性戰(zhàn)略布局,加強發(fā)展的系統(tǒng)性、市場前瞻性、產品創(chuàng)新能力,以專注、極致的服務理念,為客戶提供成都網站設計、網站制作 網站設計制作按需設計網站,公司網站建設,企業(yè)網站建設,成都品牌網站建設,全網營銷推廣,外貿營銷網站建設,潞州網站建設費用合理。

public interface Collection
extends Iterable

集合層次結構中的根接口。 集合表示一組對象,稱為其元素。 一些集合允許重復元素,而另一些則不允許。 有些是有序的,有些是無序的。 JDK 不提供此接口的任何直接實現:它提供更具體的子接口(如 Set 和 List)的實現。 此接口通常用于傳遞集合并在需要最大通用性的地方操作它們。

Bags 或 multisets(可能包含重復元素的無序集合)應該直接實現這個接口。

所有通用 Collection 實現類(通常通過其子接口之一間接實現 Collection)應提供兩個“標準”構造函數:一個 void(無參數)構造函數,它創(chuàng)建一個空集合,以及一個具有單個參數類型的構造函數集合,它創(chuàng)建一個具有與其參數相同的元素的新集合。實際上,后一個構造函數允許用戶復制任何集合,生成所需實現類型的等效集合。沒有辦法強制執(zhí)行此約定(因為接口不能包含構造函數),但 Java 平臺庫中的所有通用 Collection 實現都遵守。

此接口中包含的“破壞性”方法,即修改其操作的集合的方法,指定在此集合不支持操作時拋出 UnsupportedOperationException。如果是這種情況,如果調用對集合沒有影響,這些方法可能會(但不是必須)拋出 UnsupportedOperationException。例如,如果要添加的集合為空,則對不可修改的集合調用 addAll(java.util.Collection) 方法可能但不是必須拋出異常。

一些集合實現對它們可能包含的元素有限制。 例如,一些實現禁止空元素,而一些實現對其元素的類型有限制。 嘗試添加不合格的元素會引發(fā)未經檢查的異常,通常是 NullPointerException 或 ClassCastException。 嘗試查詢不合格元素的存在可能會引發(fā)異常,或者它可能只是返回 false; 一些實現會表現出前一種行為,而另一些會表現出后者。 更一般地,嘗試對不合格元素執(zhí)行操作,該不合格元素的完成不會導致將不合格元素插入集合中,這可能會引發(fā)異常,也可能會成功,這取決于實現的選擇。 此類異常在此接口的規(guī)范中被標記為“可選”。

由每個集合決定自己的同步策略。在實現沒有更強有力的保證的情況下,未定義的行為可能是由于對正在被另一個線程改變的集合上的任何方法的調用引起的;這包括直接調用,將集合傳遞給可能執(zhí)行調用的方法,以及使用現有迭代器檢查集合。

Collections Framework 接口中的許多方法都是根據 Object#equals(Object) 方法定義的。例如,contains(Object o) 方法的規(guī)范說:“當且僅當此集合包含至少一個元素 e 使得 (o==null ? e==null : o.equals(e)) ?!北疽?guī)范不應被解釋為暗示使用非空參數 o 調用 Collection.contains 將導致對任何元素 e 調用 o.equals(e)。實現可以自由地實現優(yōu)化,從而避免調用 equals,例如,首先比較兩個元素的哈希碼。 (Object#hashCode() 規(guī)范保證具有不相等哈希碼的兩個對象不能相等。)更一般地說,各種集合框架接口的實現可以自由地利用底層 Object 方法的指定行為,只要實現者認為它合適.

一些執(zhí)行集合遞歸遍歷的集合操作可能會失敗,但對于集合直接或間接包含自身的自引用實例的異常。 這包括 clone()、equals()、hashCode() 和 toString() 方法。 實現可以選擇處理自引用場景,但是大多數當前的實現不這樣做。

此接口是 Java 集合框架的成員。

方法總結

修飾符和類型 方法 描述
boolean add(E e) 確保此集合包含指定的元素(可選操作)。
boolean addAll(Collection c) 將指定集合中的所有元素添加到此集合(可選操作)。
void clear() 從此集合中移除所有元素(可選操作)。
boolean contains(Object o) 如果此集合包含指定元素,則返回 true。
boolean containsAll(Collection c) 如果此集合包含指定集合中的所有元素,則返回 true。
boolean equals(Object o) 比較指定對象與此集合是否相等。
int hashCode() 返回此集合的哈希碼值。
boolean isEmpty() 如果此集合不包含任何元素,則返回 true。
IteratorE iterator() 返回此集合中元素的迭代器。
default StreamE parallelStream() 返回以該集合為源的可能并行 Stream。
boolean remove(Object o) 從此集合中移除指定元素的單個實例(如果存在)(可選操作)。
boolean removeAll(Collection c) 移除此集合的所有也包含在指定集合中的元素(可選操作)。
default boolean removeIf(Predicate filter) 刪除此集合中滿足給定謂詞的所有元素。
boolean retainAll(Collection c) 僅保留此集合中包含在指定集合中的元素(可選操作)。
int size() 返回此集合中的元素數。
default SpliteratorE spliterator() 在此集合中的元素上創(chuàng)建一個 Spliterator。
default StreamE stream() 返回以此集合為源的順序流。
Object[] toArray() 返回一個包含此集合中所有元素的數組。
 T[] toArray(T[] a) 返回一個包含此集合中所有元素的數組; 返回數組的運行時類型是指定數組的運行時類型。
從接口 java.lang.Iterable 繼承的方法
forEach

方法詳情

size

int size()

返回此集合中的元素數。 如果此集合包含多個 Integer.MAX_VALUE 元素,則返回 Integer.MAX_VALUE。

返回:

此集合中的元素數

isEmpty

boolean isEmpty()

如果此集合不包含任何元素,則返回 true。

返回:

如果此集合不包含任何元素,則為 true

contains

boolean contains(Object o)

如果此集合包含指定元素,則返回 true。 更正式地說,當且僅當此集合包含至少一個元素 e 滿足 (o==null ? e==null : o.equals(e)) 時才返回 true。

參數:

參數名稱 參數描述
o 要測試其在此集合中的存在的元素

返回:

如果此集合包含指定元素,則為 true

Throws:

Throw名稱 Throw描述
ClassCastException 如果指定元素的類型與此集合不兼容(可選)
NullPointerException 如果指定元素為空且此集合不允許空元素(可選)

iterator

IteratorE iterator()

返回此集合中元素的迭代器。 不保證返回元素的順序(除非此集合是提供保證的某個類的實例)。

指定者:

接口 IterableE 中的迭代器

返回:

此集合中元素的迭代器

toArray

Object[] toArray()

返回一個包含此集合中所有元素的數組。 如果此集合對其迭代器返回其元素的順序做出任何保證,則此方法必須以相同的順序返回元素。

返回的數組將是“安全的”,因為此集合不維護對它的引用。 (換句話說,即使此集合由數組支持,此方法也必須分配一個新數組)。 因此,調用者可以自由修改返回的數組。

此方法充當基于數組和基于集合的 API 之間的橋梁。

返回:

包含此集合中所有元素的數組

toArray

T[] toArray(T[] a)

返回一個包含此集合中所有元素的數組;返回數組的運行時類型是指定數組的運行時類型。如果集合適合指定的數組,則在其中返回。否則,將使用指定數組的運行時類型和此集合的大小分配一個新數組。

如果此集合適合指定的數組并有剩余空間(即,數組的元素比此集合多),則數組中緊跟集合末尾的元素設置為 null。 (僅當調用者知道此集合不包含任何空元素時,這在確定此集合的長度時才有用。)

如果此集合對其迭代器返回其元素的順序做出任何保證,則此方法必須以相同的順序返回元素。

與 toArray() 方法一樣,此方法充當基于數組的 API 和基于集合的 API 之間的橋梁。此外,此方法允許對輸出數組的運行時類型進行精確控制,并且在某些情況下可用于節(jié)省分配成本。

假設 x 是一個已知只包含字符串的集合。以下代碼可用于將集合轉儲到新分配的 String 數組中:

     String[] y = x.toArray(new String[0]);

請注意,toArray(new Object[0]) 在功能上與 toArray() 相同。

類型參數:

類型參數名稱 類型參數描述
T 包含集合的數組的運行時類型

參數:

參數名稱 參數描述
a 這個集合的元素要存儲到的數組,如果它足夠大的話; 否則,將為此目的分配相同運行時類型的新數組。

返回:

包含此集合中所有元素的數組

Throws:

Throw名稱 Throw描述
ArrayStoreException 如果指定數組的運行時類型不是此集合中每個元素的運行時類型的超類型
NullPointerException 如果指定的數組為空

add

boolean add(E e)

確保此集合包含指定的元素(可選操作)。 如果此集合因調用而更改,則返回 true。 (如果此集合不允許重復且已包含指定元素,則返回 false。)

支持此操作的集合可能會限制可以添加到此集合的元素。 特別是,一些集合會拒絕添加空元素,而另一些則會對可能添加的元素類型施加限制。 集合類應在其文檔中明確指定對可以添加哪些元素的任何限制。

如果一個集合拒絕添加一個特定元素,除了它已經包含該元素之外,它必須拋出一個異常(而不是返回 false)。 這保留了在此調用返回后集合始終包含指定元素的不變量。

參數:

參數名稱 參數描述
e 要確保在此集合中存在的元素

返回:

如果此集合因調用而更改,則為 true

Throws:

Throw名稱 Throw描述
UnsupportedOperationException 如果此集合不支持添加操作
ClassCastException 如果指定元素的類阻止它被添加到此集合中
NullPointerException 如果指定元素為 null 并且此集合不允許 null 元素
IllegalArgumentException 如果元素的某些屬性阻止它被添加到此集合中
IllegalStateException 如果此時由于插入限制無法添加元素

remove

boolean remove(Object o)

從此集合中移除指定元素的單個實例(如果存在)(可選操作)。 更正式地說,如果這個集合包含一個或多個這樣的元素,則刪除一個元素 e 使得 (o==null ? e==null : o.equals(e))。 如果此集合包含指定元素(或等效地,如果此集合因調用而更改),則返回 true。

參數:

參數名稱 參數描述
o 要從此集合中刪除的元素(如果存在)

返回:

如果由于此調用而刪除了元素,則為 true

Throws:

Throw名稱 Throw描述
ClassCastException 如果指定元素的類型與此集合不兼容(可選)
NullPointerException 如果指定元素為空且此集合不允許空元素(可選)
UnsupportedOperationException 如果此集合不支持刪除操作

containsAll

boolean containsAll(Collection c)

如果此集合包含指定集合中的所有元素,則返回 true。

參數:

參數名稱 參數描述
c 要檢查此集合中包含的集合

返回:

如果此集合包含指定集合中的所有元素,則為 true

Throws:

Throw名稱 Throw描述
ClassCastException 如果指定集合中的一個或多個元素的類型與該集合不兼容(可選)
NullPointerException 如果指定的集合包含一個或多個空元素并且此集合不允許空元素(可選),或者指定的集合為空。

addAll

boolean addAll(Collection c)

將指定集合中的所有元素添加到此集合(可選操作)。 如果在操作正在進行時修改了指定的集合,則此操作的行為是未定義的。 (這意味著如果指定的集合是這個集合,并且這個集合是非空的,那么這個調用的行為是未定義的。)

參數:

參數名稱 參數描述
c 包含要添加到此集合的元素的集合

返回:

如果此集合因調用而更改,則為 true

Throws:

Throw名稱 Throw描述
UnsupportedOperationException 如果此集合不支持 addAll 操作
ClassCastException 如果指定集合的元素的類阻止將其添加到此集合中
NullPointerException 如果指定的集合包含空元素并且此集合不允許空元素,或者指定的集合為空
IllegalArgumentException 如果指定集合的某個元素的某些屬性阻止它被添加到此集合中
IllegalStateException 如果由于插入限制,此時不能添加所有元素

removeAll

boolean removeAll(Collection c)

移除此集合的所有也包含在指定集合中的元素(可選操作)。 在此調用返回后,此集合將不包含與指定集合共有的元素。

參數:

參數名稱 參數描述
c 包含要從此集合中刪除的元素的集合

返回:

如果此集合因調用而更改,則為 true

Throws:

Throw名稱 Throw描述
UnsupportedOperationException 如果此集合不支持 removeAll 方法
ClassCastException 如果此集合中的一個或多個元素的類型與指定的集合不兼容(可選)
NullPointerException 如果此集合包含一個或多個空元素并且指定的集合不支持空元素(可選),或者指定的集合為空

removeIf

default boolean removeIf(Predicate filter)

刪除此集合中滿足給定謂詞的所有元素。 在迭代期間或由謂詞引發(fā)的錯誤或運行時異常將轉發(fā)給調用者。

參數:

參數名稱 參數描述
filter 對于要刪除的元素返回 true 的謂詞

返回:

如果刪除了任何元素,則為 true

Throws:

Throw名稱 Throw描述
NullPointerException 如果指定的過濾器為空
UnsupportedOperationException 如果無法從此集合中刪除元素。 如果無法刪除匹配的元素,或者通常不支持刪除,則實現可能會拋出此異常。

retainAll

boolean retainAll(Collection c)

僅保留此集合中包含在指定集合中的元素(可選操作)。 換句話說,從這個集合中移除所有不包含在指定集合中的元素。

參數:

參數名稱 參數描述
c 包含要保留在此集合中的元素的集合

返回:

如果此集合因調用而更改,則為 true

Throws:

Throw名稱 Throw描述
UnsupportedOperationException 如果此集合不支持 retainAll 操作
ClassCastException 如果此集合中的一個或多個元素的類型與指定的集合不兼容(可選)
NullPointerException 如果此集合包含一個或多個空元素并且指定的集合不允許空元素(可選),或者指定的集合為空

clear

void clear()

從此集合中移除所有元素(可選操作)。 此方法返回后,集合將為空。

Throws:

Throw名稱 Throw描述
UnsupportedOperationException 如果此集合不支持清除操作

equals

boolean equals(Object o)

比較指定對象與此集合是否相等。

雖然 Collection 接口沒有為 Object.equals 的一般約定添加任何規(guī)定,但“直接”實現 Collection 接口的程序員(換句話說,創(chuàng)建一個是 Collection 但不是 Set 或 List 的類)必須小心如果他們選擇覆蓋 Object.equals。沒有必要這樣做,最簡單的做法是依賴 Object 的實現,但實現者可能希望實現“值比較”來代替默認的“引用比較”。 (List 和 Set 接口要求進行此類值比較。)

Object.equals 方法的一般約定規(guī)定 equals 必須是對稱的(換句話說,a.equals(b) 當且僅當 b.equals(a) 時)。 List.equals 和 Set.equals 的協定規(guī)定列表僅等于其他列表,并且集合與其他集合相同。因此,當將此集合與任何列表或集合進行比較時,既不實現 List 也不實現 Set 接口的集合類的自定義 equals 方法必須返回 false。 (按照同樣的邏輯,不可能編寫一個同時正確實現 Set 和 List 接口的類。)

覆蓋:

類 Object 中的等于

參數:

參數名稱 參數描述
o 要與此集合比較是否相等的對象

返回:

如果指定的對象等于此集合,則為 true

hashCode

int hashCode()

返回此集合的哈希碼值。 雖然 Collection 接口沒有對 Object.hashCode 方法的通用約定添加任何規(guī)定,但程序員應注意,任何重寫 Object.equals 方法的類也必須重寫 Object.hashCode 方法以滿足 Object 的通用約定 .hashCode 方法。 特別是,c1.equals(c2) 意味著 c1.hashCode()==c2.hashCode()。

覆蓋:

類 Object 中的 hashCode

返回:

此集合的哈希碼值

spliterator

default SpliteratorE spliterator()

在此集合中的元素上創(chuàng)建一個 Spliterator。 實現應該記錄分離器報告的特征值。 如果拆分器報告 Spliterator#SIZED 并且此集合不包含任何元素,則不需要報告此類特征值。

默認實現應該被可以返回更有效拆分器的子類覆蓋。 為了保留 stream() 和 parallelStream()} 方法的預期惰性行為,拆分器應該具有 IMMUTABLE 或 CONCURRENT 的特性,或者是后期綁定的。 如果這些都不可行,則覆蓋類應描述拆分器的綁定和結構干擾的文檔化策略,并應覆蓋 stream() 和 parallelStream() 方法以使用拆分器的供應商創(chuàng)建流,如下所示:

     Stream s = StreamSupport.stream(() -> spliterator(), spliteratorCharacteristics) 

這些要求確保由 stream() 和 parallelStream() 方法生成的流將反映在終端流操作啟動時集合的內容。

指定者:

接口 IterableE 中的分離器

返回:

此集合中元素的拆分器

stream

default StreamE stream()

返回以此集合為源的順序流。

當 spliterator() 方法無法返回 IMMUTABLE、CONCURRENT 或后期綁定的拆分器時,應覆蓋此方法。 (有關詳細信息,請參閱 spliterator()。)

返回:

此集合中元素的順序流

parallelStream

default StreamE parallelStream()

返回以該集合為源的可能并行 Stream。 此方法允許返回順序流。

當 spliterator() 方法無法返回 IMMUTABLE、CONCURRENT 或后期綁定的拆分器時,應覆蓋此方法。

返回:

此集合中元素的可能并行 Stream


網頁題目:創(chuàng)新互聯鴻蒙OS教程:鴻蒙OSCollection
轉載來于:http://m.5511xx.com/article/coipehp.html