色欲av一区久久精品_久久综合色综合色88_无码在线观看不卡_色黄视频网站_亚洲国产精品久久久久秋霞66

JAVA集合中Collections和Collection的區(qū)別

時間:2022-07-13

Collection

品牌網站建設,Collection 層次結構 中的根接口。Collection 表示一組對象,這些對象也稱為 collection 的元素。一些 collection 允許有重復的元素,而另一些則不允許。一些 collection 是有序的,而另一些則是無序的。JDK 不提供此接口的任何直接 實現(xiàn):它提供更具體的子接口(如 Set 和 List)實現(xiàn)。此接口通常用來傳遞 collection,并在需要最大普遍性的地方操作這些 collection。

包 (bag) 或多集合 (multiset)(可能包含重復元素的無序 collection)應該直接實現(xiàn)此接口。

所有通用的 Collection 實現(xiàn)類(通常通過它的一個子接口間接實現(xiàn) Collection)應該提供兩個“標準”構造方法:一個是 void(無參數(shù))構造方法,用于創(chuàng)建空 collection;另一個是帶有 Collection 類型單參數(shù)的構造方法,用于創(chuàng)建一個具有與其參數(shù)相同元素新的 collection。實際上,后者允許用戶復制任何 collection,以生成所需實現(xiàn)類型的一個等效 collection。盡管無法強制執(zhí)行此約定(因為接口不能包含構造方法),但是 Java 平臺庫中所有通用的 Collection 實現(xiàn)都遵從它。

此接口中包含的“破壞性”方法,是指可修改其所操作的 collection 的那些方法,如果此 collection 不支持該操作,則指定這些方法拋出 UnsupportedOperationException。如果是這樣,那么在調用對該 collection 無效時,這些方法可能,但并不一定拋出 UnsupportedOperationException。例如,如果要添加的 collection 為空且不可修改,則對該 collection 調用 addAll(Collection) 方法時,可能但并不一定拋出異常。


image.png

對于企業(yè)建設網站來講,一些 collection 實現(xiàn)對它們可能包含的元素有所限制。例如,某些實現(xiàn)禁止 null 元素,而某些實現(xiàn)則對元素的類型有限制。試圖添加不合格的元素將拋出一個未經檢查的異常,通常是 NullPointerException 或 ClassCastException。試圖查詢是否存在不合格的元素可能拋出一個異常,或者只是簡單地返回 false;某些實現(xiàn)將表現(xiàn)出前一種行為,而某些實現(xiàn)則表現(xiàn)后一種。較為常見的是,試圖對某個不合格的元素執(zhí)行操作且該操作的完成不會導致將不合格的元素插入 collection 中,將可能拋出一個異常,也可能操作成功,這取決于實現(xiàn)本身。這樣的異常在此接口的規(guī)范中標記為“可選”。

由每個 collection 來確定其自身的同步策略。在沒有實現(xiàn)的強烈保證的情況下,調用由另一進程正在更改的 collection 的方法可能會出現(xiàn)不確定行為;這包括直接調用,將 collection 傳遞給可能執(zhí)行調用的方法,以及使用現(xiàn)有迭代器檢查 collection。

Collections Framework 接口中的很多方法是根據 equals 方法定義的。例如,contains(Object o) 方法的規(guī)范聲明:“當且僅當此 collection 包含至少一個滿足 (o==null ? e==null :o.equals(e)) 的元素 e 時,返回 true?!辈?應將此規(guī)范理解為它暗指調用具有非空參數(shù) o 的 Collection.contains 方法會導致為任意的 e 元素調用 o.equals(e) 方法。可隨意對各種實現(xiàn)執(zhí)行優(yōu)化,只要避免調用 equals 即可,例如,通過首先比較兩個元素的哈希碼。(Object.hashCode() 規(guī)范保證哈希碼不相等的兩個對象不會相等)。較為常見的是,各種 Collections Framework 接口的實現(xiàn)可隨意利用底層 Object 方法的指定行為,而不管實現(xiàn)程序認為它是否合適。


Collections

此類完全由在 collection 上進行操作或返回 collection 的靜態(tài)方法組成。它包含在 collection 上操作的多態(tài)算法,即“包裝器”,包裝器返回由指定 collection 支持的新 collection,以及少數(shù)其他內容。

如果為此類的方法所提供的 collection 或類對象為 null,則這些方法都將拋出 NullPointerException。

此類中所含多態(tài)算法的文檔通常包括對實現(xiàn) 的簡短描述。應該將這類描述視為實現(xiàn)注意事項,而不是規(guī)范 的一部分。實現(xiàn)者應該可以隨意使用其他算法替代,只要遵循規(guī)范本身即可。(例如,sort 使用的算法不一定是合并排序算法,但它必須是穩(wěn)定的。)

此類中包含的“破壞性”算法,即可修改其所操作的 collection 的算法,該算法被指定在 collection 不支持適當?shù)目勺兓ū热?set 方法)時拋出 UnsupportedOperationException。如果調用不會對 collection 產生任何影響,那么這些算法可能(但不要求)拋出此異常。例如,在已經排序的、不可修改列表上調用 sort 方法可能會(也可能不會)拋出 UnsupportedOperationException。


Copyright ? 2016 廣州思洋文化傳播有限公司,保留所有權利。 粵ICP備09033321號

與項目經理交流
掃描二維碼
與項目經理交流
掃描二維碼
與項目經理交流
ciya68