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) 方法時,可能但并不一定拋出異常。
對于企業(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。
廣州天河區(qū)珠江新城富力盈力大廈北塔2706
020-38013166(網站咨詢專線)
400-001-5281 (售后服務熱線)
深圳市坂田十二橡樹莊園F1-7棟
Site/ http://www.szciya.com
E-mail/ itciya@vip.163.com
品牌服務專線:400-001-5281
長沙市天心區(qū)芙蓉中路三段398號新時空大廈5樓
聯(lián)系電話/ (+86 0731)88282200
品牌服務專線/ 400-966-8830
旗下運營網站:
Copyright ? 2016 廣州思洋文化傳播有限公司,保留所有權利。 粵ICP備09033321號