Connection介面介紹 Connection介面是java集合的root介面,沒有實現類,只有子介面和實現子介面的各種容器。主要用來表示java集合這一大的抽象概念。 Connection介面要求,所有實現此介面的容器,必須提供至少兩種構造方法:無參構造方法、參數為Connection類的構造 ...
Connection介面介紹
Connection介面是java集合的root介面,沒有實現類,只有子介面和實現子介面的各種容器。主要用來表示java集合這一大的抽象概念。
Connection介面要求,所有實現此介面的容器,必須提供至少兩種構造方法:無參構造方法、參數為Connection類的構造方法。後者需要創建一個具有和參數包含元素相同的新集合,以此來進行集合的複製。java中所有的api均遵守了此規則。
如果集合不支持某種修改方式,那麼進行這種修改操作的方法必須拋出UnsupportedOperationException異常。但是,如果這次修改並沒有實際效果(比如往一個集合里新增一個空集合),集合可能不會拋出此異常。
對於某些集合,他們對自己能容納的元素有限制,嘗試進行添加操作時可能會拋出unchecked Exception,如NullPointerException或者ClassCastException。而在查詢時,集合可能會拋出異常,也可能直接返回一個false表示失敗,這取決於集合自身的實現。
對於集合中元素的比較,集合可能使用equals方法,也有可能使用hashCode方法,這取決於集合的實現。不能簡單的認為集合一定會調用equals方法,集合可能會使用任意一種Object提供的合適方法進行元素的比較。
另外,當集合包含的元素中有自身時,調用集合的clone()、hashCode()、equals()、toString()方法可能會失敗並拋出異常,因為這導致了遞歸調用。集合可以自己處理這種異常,但是目前實現的集合都沒有進行處理。
Connection包含的方法
/** * 判斷類方法 **/ int size();//返回集合包含的元素,若大於Integer.MAX_VALUE,返回Integer.MAX_VALUE boolean isEmpty();//集合為空時返回true boolean contains(Object o);//集合包含o時返回true,可能會拋出ClassCastException和NullPointerException異常 boolean containsAll(Collection<?> c); /** * 轉化類方法 **/ Iterator<E> iterator();//返回集合對應的迭代器(這是由於Connection繼承了Iterable介面) Object[] toArray();//將集合轉化為數組 <T> T[] toArray(T[] a);//將集合轉化為數組,並保持輸入的類型 /** * 操作類方法 **/ boolean add(E e); boolean addAll(Collection<? extends E> c); boolean remove(Object o); boolean removeAll(Collection<?> c); boolean removeIf(Predicate<? super E> filter);//此方法有預設實現 boolean retainAll(Collection<?> c);//僅保留參數中的元素 void clear();