super interfaces:?java.util.Iterable
Collection接口是java集合框架的頂級(jí)父接口宏怔。一個(gè)集合就是一組相同類(lèi)型的元素。一些集合允許存在重復(fù)的元素阔蛉,而其他的則不允許弃舒。一些是有序的,而另一些則是無(wú)序的状原。JDK沒(méi)有提供這個(gè)接口的直接實(shí)現(xiàn)類(lèi)聋呢,而是提供了一些更加定制化的子接口例如 List Set等。這個(gè)接口通常只是用來(lái)描述接口的輪廓颠区,以及一個(gè)接口所需要的功能的最低配置削锰。
Bags(袋)和mutilsets(多重集合)應(yīng)該直接實(shí)現(xiàn)這個(gè)接口。
所有一般用途的集合類(lèi)(即沒(méi)有直接實(shí)現(xiàn)Collection接口毕莱,而是實(shí)現(xiàn)了Collection的子接口的集合類(lèi)們)都應(yīng)該擁有兩個(gè)標(biāo)準(zhǔn)的構(gòu)造函數(shù)器贩。一個(gè)無(wú)參構(gòu)造函數(shù),和一個(gè)有參構(gòu)造函數(shù)朋截。有參構(gòu)造函數(shù)的入?yún)⑹且粋€(gè)Collection類(lèi)型的對(duì)象蛹稍。實(shí)際上,這個(gè)有參構(gòu)造函數(shù)可以讓用戶(hù)拷貝任何類(lèi)型的集合對(duì)象部服,來(lái)構(gòu)造一個(gè)我們所需類(lèi)型的集合對(duì)象唆姐。這個(gè)原則是一個(gè)潛規(guī)則(接口沒(méi)有構(gòu)造函數(shù))。但是一般的集合類(lèi)都會(huì)遵循這個(gè)原則饲宿。
這個(gè)接口定義的方法厦酬,對(duì)一些集合實(shí)現(xiàn)類(lèi)來(lái)說(shuō)是不支持的,對(duì)于具體的實(shí)現(xiàn)類(lèi)瘫想,如果某個(gè)方法不被支持可以?huà)伋?i>UnsupportedOperationException異常,如果某個(gè)方法對(duì)實(shí)現(xiàn)類(lèi)來(lái)說(shuō)是可有可無(wú)的或者說(shuō)是沒(méi)有任何影響的昌讲,也可以?huà)伋?i>UnsupportedOperationException異常国夜,但不是必須的。
某些集合實(shí)現(xiàn)類(lèi)對(duì)它包含的元素有一些約束條件短绸,比如有些集合實(shí)現(xiàn)不允許出現(xiàn)NULL值车吹,而另一些對(duì)其內(nèi)部元素的類(lèi)型有約束筹裕。如果插入或者查詢(xún)非法元素可能會(huì)拋出 非檢查型異常也可能直接返回false。
集合框架的很多方法都是根據(jù) Object.equals 來(lái)判斷窄驹。例如 contains方法 判斷集合是否包含元素 o 時(shí)朝卒,當(dāng)調(diào)用contains方法且集合對(duì)象內(nèi)至少有一個(gè)元素 e,程序會(huì)遍歷集合中的每個(gè)元素判斷(o==null ? e==null : o.equals(e))是否成立乐埠。
某些集合對(duì)象在進(jìn)行遞歸遍歷時(shí)抗斤,如果其直接或間接包含自身的話(huà),會(huì)拋出異常丈咐。
<p>int size();</p>