super interfaces:?java.util.Iterable
Collection接口是java集合框架的頂級(jí)父接口。一個(gè)集合就是一組相同類型的元素。一些集合允許存在重復(fù)的元素,而其他的則不允許。一些是有序的,而另一些則是無(wú)序的。JDK沒(méi)有提供這個(gè)接口的直接實(shí)現(xiàn)類,而是提供了一些更加定制化的子接口例如 List Set等。這個(gè)接口通常只是用來(lái)描述接口的輪廓,以及一個(gè)接口所需要的功能的最低配置。
Bags(袋)和mutilsets(多重集合)應(yīng)該直接實(shí)現(xiàn)這個(gè)接口。
所有一般用途的集合類(即沒(méi)有直接實(shí)現(xiàn)Collection接口,而是實(shí)現(xiàn)了Collection的子接口的集合類們)都應(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類型的對(duì)象。實(shí)際上,這個(gè)有參構(gòu)造函數(shù)可以讓用戶拷貝任何類型的集合對(duì)象,來(lái)構(gòu)造一個(gè)我們所需類型的集合對(duì)象。這個(gè)原則是一個(gè)潛規(guī)則(接口沒(méi)有構(gòu)造函數(shù))。但是一般的集合類都會(huì)遵循這個(gè)原則。
這個(gè)接口定義的方法,對(duì)一些集合實(shí)現(xiàn)類來(lái)說(shuō)是不支持的,對(duì)于具體的實(shí)現(xiàn)類,如果某個(gè)方法不被支持可以拋出UnsupportedOperationException異常,如果某個(gè)方法對(duì)實(shí)現(xiàn)類來(lái)說(shuō)是可有可無(wú)的或者說(shuō)是沒(méi)有任何影響的,也可以拋出UnsupportedOperationException異常,但不是必須的。
某些集合實(shí)現(xiàn)類對(duì)它包含的元素有一些約束條件,比如有些集合實(shí)現(xiàn)不允許出現(xiàn)NULL值,而另一些對(duì)其內(nèi)部元素的類型有約束。如果插入或者查詢非法元素可能會(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ì)拋出異常。
<p>int size();</p>