Java學習關於集合框架的基礎介面--Collection介面

忘塵天外天發表於2017-07-25

   集合框架(Collection  Framework)是Java最強大的子系統之一,位於java.util 包中。集合框架是一個複雜的介面與和類層次,提供了管理物件組的最新技術。Java集合框架標準化了程式處理物件組的方式。

  集合框架在設計上需要滿足幾個目標。首先,框架必須是高效能的。基本集合(動態陣列、連結串列、樹以及雜湊表)的實現是高效率的。很少需要手動編寫這些資料引擎中的某一個。其次,框架必須允許不同型別的集合以類似的方式進行工作,並且具有高度的互操作性。再次,擴充套件或改造必須易於實現。為了滿足這些目標,整個集合框架基於一套標準介面進行構造,提供了這些介面的一些可以直接使用的標準實現(如LinkedList、HashSet和TreeSet)。作為一種選擇,也可以實現自己的集合。為了方便,提供各種特定目的的實現。最後,必須新增可以將標準陣列整合到集合框架中的機制。

  演算法是集合機制的另外一個重要組成部分。演算法操作集合,並且被定義為Collections類中的靜態方法。因此,所有集合都可以使用它們。

  與集合框架密切相關的另一個內容是 Iterator 介面。迭代器為訪問集合中的元素提供了通用、標準的方式,每次訪問一個元素。因為每個集合都提供了迭代器,所以可以通過Iterator定義的方法訪問所有集合類的元素。

  Collection介面是構建集合框架的基礎,因為定義集合的所有類都必須實現該介面,Collection是泛型介面

  public interface Collection<E> extends Iterable<E>
其中,E指定了集合中儲存的物件型別。Collection介面擴充套件了 Iterator 介面。
方法說明
boolean  add(E e)
確保此集合包含指定的元素(可選操作)。
boolean addAll(Collection<? extends E> c)
將指定集合中的所有元素新增到此集合(可選操作)。
void  clear()
從此集合中刪除所有元素(可選操作)。
boolean   contains(Object o)
如果此集合包含指定的元素,則返回 true
boolean   containsAll(Collection<?> c)
如果此集合包含指定 集合中的所有元素,則返回true。
boolean   equals(Object o)
將指定的物件與此集合進行比較以獲得相等性。
int    hashCode()
返回此集合的雜湊碼值。
boolean    isEmpty()
如果此集合不包含元素,則返回 true 。 
boolean   remove(Object o)                                 
從該集合中刪除指定元素的單個例項(如果存在)(可選操作)。移除返回true
boolean    removeAll(Collection<?> c)
刪除指定集合中包含的所有此集合的元素(可選操作)。
default boolean removeIf(Predicate<? super E> filter)
刪除滿足給定謂詞的此集合的所有元素。
boolean    retainAll(Collection<?> c)
僅保留此集合中包含在指定集合中的元素(可選操作)。
int     size()
返回此集合中的元素數。 
Object[]    toArray()                                            
返回一個包含此集合中所有元素的陣列。
<T> T[]    toArray(T[] a)
返回包含此集合中所有元素的陣列; 返回的陣列的執行時型別是指定陣列的執行時型別。

方法詳細資訊

  • toArray

  Object[] toArray()
  返回一個包含此集合中所有元素的陣列。 如果此集合對其迭代器返回的元素的順序做出任何保證,則此方法必須以相同的順序返回元素。返回的陣列將是“安全的”,因為該集合不保留對它的引用。 (換句話說,這個方法必須分配一個新的陣列,即使這個集合是由陣列支援的)。 因此,呼叫者可以自由地修改返回的陣列。此方法充當基於陣列和基於集合的API之間的橋樑。結果一個包含此集合中所有元素的陣列 
  • clear

  void clear()

  從此集合中刪除所有元素(可選操作)。 此方法返回後,集合將為空。異常  UnsupportedOperationException - 如果此 集合不支援clear操作 

  • add

boolean add(E e)
  確保此集合包含指定的元素(可選操作)。 如果此集合由於呼叫而更改,則返回true 。 (如果此集合不允許重複,並且已包含指定的元素,則返回false。 )支援此操作的集合可能會限制可能新增到此集合的元素。 特別是一些集合拒絕新增null種元素,和其他人將強加可新增元素的型別限制。 收集類應在其文件中明確說明可能新增哪些元素的限制。

如果一個集合拒絕新增一個特定的元素,除了它已經包含該元素之外,它必須丟擲異常(而不是返回false )。 這保留了一個集合在此呼叫返回後始終包含指定元素的不變數。

引數e - 要確保在此集合中的存在的元素
  結果   true如果此集合由於呼叫而更改
異常
UnsupportedOperationException - 如果此 集合不支援add操作
ClassCastException - 如果指定元素的類阻止將其新增到此集合
NullPointerException - 如果指定的元素為空,並且該集合不允許空元素
IllegalArgumentException - 如果元素的某些屬性阻止其新增到此集合
IllegalStateException - 如果由於插入限制,此時無法新增該元素 

 

相關文章