1. 程式人生 > >java.util包詳解(二)——Connection接口

java.util包詳解(二)——Connection接口

操作 相同 元素 叠代 cat roo soft true nbsp

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();

java.util包詳解(二)——Connection接口