集合框架(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()
-
clear
void clear()
從此集合中刪除所有元素(可選操作)。 此方法返回後,集合將為空。異常 UnsupportedOperationException
- 如果此 集合不支援clear操作
-
add
boolean add(E e)
如果一個集合拒絕新增一個特定的元素,除了它已經包含該元素之外,它必須丟擲異常(而不是返回false )。 這保留了一個集合在此呼叫返回後始終包含指定元素的不變數。
- 引數
e
- 要確保在此集合中的存在的元素 - 結果 true如果此集合由於呼叫而更改
- 異常
UnsupportedOperationException
- 如果此 集合不支援add操作ClassCastException
- 如果指定元素的類阻止將其新增到此集合NullPointerException
- 如果指定的元素為空,並且該集合不允許空元素IllegalArgumentException
- 如果元素的某些屬性阻止其新增到此集合IllegalStateException
- 如果由於插入限制,此時無法新增該元素