AbstractCollection

java.util 類 AbstractCollection<E> java.lang.Object java.util.AbstractCollection<E> 所有已實現的接口: Iterable<E>, Collection<E> 直接已知子類: AbstractList, AbstractQueue, AbstractSet。

簡介

java.util
AbstractCollection<E>
java.lang.Object
java.util.AbstractCollection<E>
所有已實現的接口:
Iterable<E>, Collection<E>
直接已知子類:
AbstractList, AbstractQueue, AbstractSet
--------------------------------------------------------------------------------
public abstract class AbstractCollection<E>extends Objectimplements Collection<E>此類提供了 Collection 接口的骨幹實現,從而最大限度地減少了實現此接口所需的工作。
要實現一個不可修改的 collection,程式設計師只需擴展此類,並提供 iterator 和 size 方法的實現。(iterator 方法返回的疊代器必須實現 hasnext 和 next。)
要實現可修改的 collection,程式設計師還必須另外重寫此類的 add 方法(否則,會拋出 UnsupportedOperationException),並且 iterator 方法返回的疊代器必須另外實現其 remove 方法。
按照 Collection 接口規範中的推薦,程式設計師通常應該提供一個 void(無參數)和 Collection構造方法。
此類中每個非抽象方法的文檔詳細描述了其實現。如果要實現的 collection允許更有效的實現,則可以重寫這些方法中的每個方法。
此類是 Java Collections Framework的成員。

版本信息

構造方法摘要
protectedAbstractCollection()
單獨的構造方法。
方法摘要
boolean add(E o)
確保此 collection 包含指定的元素(可選操作)。
boolean addAll(Collection<? extends E> c)
將指定 collection 中的所有元素添加到此 collection中(可選操作)。
void clear()
從此 collection 中移除所有元素(可選操作)。
boolean contains(Object o)
如果此 collection 包含指定的元素,則返回 true
boolean containsAll(Collection<?> c)
如果此 collection 包含指定 collection 中的所有元素,則返回 true
boolean isEmpty()
如果此 collection 不包含元素,則返回 true
abstractIterator<E> iterator()
返回在此 collection 中的元素上進行疊代的疊代器
boolean remove(Object o)
從此 collection 中移除指定元素的單個實例(如果存在)(可選操作)。
boolean removeAll(Collection<?> c)
從此 collection 中移除包含在指定 collection 中的所有元素(可選操作)。
boolean retainAll(Collection<?> c)
僅在此 collection 中保留指定 collection 中所包含的元素(可選操作)。
abstractint size()
返回此 collection 中的元素數。
Object【】 toArray()
返回包含此 collection 中所有元素的數組。
<T> T【】
toArray(T【】 a)
返回包含此 collection 中所有元素的數組;返回數組的運行時類型是指定數組的類型。
String toString()
返回此 collection 的字元串表示形式。
從類 java.lang.Object 繼承的方法
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
從接口 java.util.Collection 繼承的方法
equals, hashCode
構造方法詳細信息
AbstractCollection
protected AbstractCollection()單獨的構造方法。(由子類構造方法調用,通常是隱式的。)
方法詳細信息
iterator
public abstract Iterator<E> iterator()返回在此 collection 中的元素上進行疊代的疊代器。
指定者:
接口 Iterable<E> 中的 iterator
指定者:
接口 Collection<E> 中的 iterator
返回:
在此 collection 中的元素上進行疊代的疊代器。
--------------------------------------------------------------------------------
size
public abstract int size()返回此 collection 中的元素數。如果該 collection 包含多於 Integer.MAX_VALUE 的元素,則返回 Integer.MAX_VALUE。
指定者:
接口 Collection<E> 中的 size
返回:
此 collection 中的元素數。
--------------------------------------------------------------------------------
isEmpty
public boolean isEmpty()如果此 collection 不包含元素,則返回 true。
此實現返回 size() == 0。
指定者:
接口 Collection<E> 中的 isEmpty
返回:
如果此 collection 不包含元素,則返回 true。
--------------------------------------------------------------------------------
contains
public boolean contains(Object o)如果此 collection 包含指定的元素,則返回 true。更正式地說,若且唯若此 collection 至少包含一個滿足以下條件的元素 e 時才返回 true:(o==null ? e==null : o.equals(e))。
此實現疊代該 collection 中的元素,並依次檢查每個元素以確定其是否與指定的元素相等。
指定者:
接口 Collection<E> 中的 contains
參數:
o - 要檢查的對象,以確定其是否包含在此 collection 中。
返回:
如果此 collection 包含指定的元素,則返回 true。
--------------------------------------------------------------------------------
toArray
public Object【】 toArray()返回包含此 collection 中所有元素的數組。如果此 collection 保證其疊代器按順序返回其元素,那么此方法也必須按相同的順序返回這些元素。返回的數組將是“安全的”,因為此 collection 並不維護對返回數組的任何引用。(換句話說,即使 collection 受到數組的支持,此方法也必須分配一個新的數組)。因此,調用方可以隨意修改返回的數組。
此實現會分配返回的數組,并迭代 collection 中的元素,將每個對象引用存儲在數組的下一個連續元素中,並從元素 0 開始。
指定者:
接口 Collection<E> 中的 toArray
返回:
包含此 collection 中所有元素的數組。
--------------------------------------------------------------------------------
toArray
public <T> T【】 toArray(T【】 a)返回包含此 collection 中所有元素的數組;返回數組的運行時類型是指定數組的類型。如果指定的數組能容納該 collection,則在此數組中返回 collection 的元素。否則,將根據指定數組的運行時類型和此 collection 的大小分配一個新數組。
如果指定的數組能容納 collection,並且有剩餘的空間(即數組的元素比 collection 多),那么會將緊挨著 collection 尾部的元素設定為 null(這對確定 collection 的長度很有用,但只有 在調用方知道 collection 不包含任何 null 元素時才可行)。
如果此 collection 保證其疊代器按順序返回其元素,那么此方法也必須按相同的順序返回這些元素。
此實現會檢查該數組是否足夠大,以包含該 collection 中的元素;如果不能包含,則將分配一個具有適當大小和類型的新數組(使用反射)。然後,在該 collection 上進行疊代,將每個對象引用存儲在數組的下一個連續元素中,並從元素 0 開始。如果該數組比該 collection 大,則在該 collection 尾部後面的第一個位置存儲 null。
指定者:
接口 Collection<E> 中的 toArray
參數:
a - 存儲此 collection 的元素的數組(如果其足夠大);否則,將為此分配一個具有相同運行時類型的新數組。
返回:
包含此 collection 的元素的數組。
拋出:
NullPointerException - 如果指定的數組為 null。
ArrayStoreException - 如果指定數組的運行時類型不是此 collection 中每個元素的運行時類型的超類型。
--------------------------------------------------------------------------------
add
public boolean add(E o)確保此 collection 包含指定的元素(可選操作)。如果此 collection 由於此方法的調用而發生改變,則返回 true。(如果此 collection 不允許有重複元素,並且已經包含了指定的元素,則返回 false。)支持此操作的 collection 可能限制哪些元素能添加到此 collection 中來。需要特別指出的是,某些 collection 拒絕添加 null 元素,其他一些 collection 則對可以添加的元素類型強加限制。Collection 類應該在其文檔中清楚地指定添加元素方面的所有限制。
此實現始終拋出 UnsupportedOperationException。
指定者:
接口 Collection<E> 中的 add
參數:
o - 確保存在於此 collection 中的元素。
返回:
如果此 collection 由於此方法的調用而發生改變,則返回 true。
拋出:
UnsupportedOperationException - 如果此 collection 不支持 add 方法。
NullPointerException - 如果此 collection 不允許 null 元素,並且指定的元素為 null。
ClassCastException - 如果指定元素的類不允許該元素添加到此 collection 中。
IllegalArgumentException - 如果此元素的某方面不允許它添加到此 collection 中。
--------------------------------------------------------------------------------
remove
public boolean remove(Object o)從此 collection 中移除指定元素的單個實例(如果存在)(可選操作)。更正式地說,如果該 collection 包含一個或多個滿足 (o==null ? e==null : o.equals(e)) 的元素 e,則移除 e。如果該 collection 包含指定的元素(或等價元素,如果該 collection 由於此方法的調用發生變化),則返回 true。
此實現在該 collection 上進行疊代,查找指定的元素。如果找到該元素,那么它會使用疊代器的 remove 方法從該 collection 中移除該元素。
注意,如果此 collection 的 iterator 方法所返回的疊代器無法實現 remove 方法,並且此 collection 包含指定的對象,那么此實現會拋出 UnsupportedOperationException。
指定者:
接口 Collection<E> 中的 remove
參數:
o - 要從此 collection 中移除的元素(如果存在)。
返回:
如果該 collection 包含指定的元素,則返回 true。
拋出:
UnsupportedOperationException - 如果此 collection 不支持 remove 方法。
--------------------------------------------------------------------------------
containsAll
public boolean containsAll(Collection<?> c)如果此 collection 包含指定 collection 中的所有元素,則返回 true。
此實現在指定的 collection 上進行疊代,依次檢查該疊代器返回的每個元素,查看其是否包含在此 collection 中。如果包含所有元素,則返回 true;否則將返回 false。
指定者:
接口 Collection<E> 中的 containsAll
參數:
c - 將檢查其是否包含在此 collection 中的 collection。
返回:
如果此 collection 包含指定 collection 中的所有元素,則返回 true。
拋出:
NullPointerException - 如果指定的 collection 為 null。
另請參見:
contains(Object)
--------------------------------------------------------------------------------
addAll
public boolean addAll(Collection<? extends E> c)將指定 collection 中的所有元素添加到此 collection 中(可選操作)。如果在該操作進行過程中修改了指定的 collection,那么此操作的行為是不明確的。(這意味著,如果指定的 collection 是此 collection,並且此 collection 非空,則此調用的行為是不明確的。)
此實現在指定的 collection 上進行疊代,並依次將疊代器返回的每個對象添加到此 collection 中。
注意,除非重寫 add,否則此實現將拋出 UnsupportedOperationException(假定指定的 collection 非空)。
指定者:
接口 Collection<E> 中的 addAll
參數:
c - 將其元素添加到此 collection 的 collection。
返回:
如果此 collection 由於此方法的調用而發生改變,則返回 true。
拋出:
UnsupportedOperationException - 如果此 collection 不支持 addAll 方法。
NullPointerException - 如果指定的 collection 為 null。
另請參見:
add(Object)
--------------------------------------------------------------------------------
removeAll
public boolean removeAll(Collection<?> c)從此 collection 中移除包含在指定 collection 中的所有元素(可選操作)。
此實現在此 collection 上進行疊代,依次檢查該疊代器返回的每個元素,以查看其是否包含在指定的 collection 中。如果是,則使用疊代器的 remove 方法將其從此 collection 中移除。
注意,如果 iterator 方法返回的疊代器無法實現 remove 方法,並且此 collection 包含一個或多個與指定 collection 共有的元素,那么此實現將拋出 UnsupportedOperationException。
指定者:
接口 Collection<E> 中的 removeAll
參數:
c - 要從此 collection 移除的元素。
返回:
如果此 collection 由於此方法的調用而發生改變,則返回 true。
拋出:
UnsupportedOperationException - 如果此 collection 不支持 removeAll 方法。
NullPointerException - 如果指定的 collection 為 null。
另請參見:
remove(Object), contains(Object)
--------------------------------------------------------------------------------
retainAll
public boolean retainAll(Collection<?> c)僅在此 collection 中保留指定 collection 中所包含的元素(可選操作)。換句話說,移除此 collection 中未包含在指定 collection 中的所有元素。
此實現在此 collection 上進行疊代,依次檢查該疊代器返回的每個元素,以查看其是否包含在指定的 collection 中。如果不是,則使用疊代器的 remove 方法將其從此 collection 中移除。
注意,如果 iterator 方法返回的疊代器無法實現 remove 方法,並且此 collection 包含一個或多個在指定 collection 中不存在的元素,那么此實現將拋出 UnsupportedOperationException。
指定者:
接口 Collection<E> 中的 retainAll
參數:
c - 將保留在此 collection 的元素。
返回:
如果此 collection 由於此方法的調用而發生改變,則返回 true。
拋出:
UnsupportedOperationException - 如果此 collection 不支持 retainAll 方法。
NullPointerException - 如果指定的 collection 為 null。
另請參見:
remove(Object), contains(Object)
--------------------------------------------------------------------------------
clear
public void clear()從此 collection 中移除所有元素(可選操作)。此調用返回後,該 collection 將為空(除非它拋出異常)。
此實現在此 collection 上進行疊代,並使用 Iterator.remove 操作移除每個元素。為了提高效率,多數實現可能會選擇重寫此方法。
注意,如果此 collection 的 iterator 方法所返回的疊代器無法實現 remove 方法,並且此 collection 非空,那么此實現將拋出 UnsupportedOperationException。
指定者:
接口 Collection<E> 中的 clear
拋出:
UnsupportedOperationException - 如果此 collection 不支持 clear 方法。
--------------------------------------------------------------------------------
toString
public String toString()返回此 collection 的字元串表示形式。該字元串表示形式由 collection 元素的列表組成,這些元素按其疊代器返回的順序排列,並用方括弧 ("【】") 括起來。相鄰元素由字元 ", "(逗號加空格)分隔。通過 String.valueOf(Object) 可以將元素轉換成字元串。
此實現會創建一個空字元串緩衝區,追加一個左方括弧,然後在 collection 上進行疊代,依次追加每個元素的字元串表示形式。每追加一個元素後(最後一個元素除外),將追加字元串 ", "。最後,追加一個右括弧。從字元串緩衝區獲取一個字元串並返回它。
覆蓋:
類 Object 中的 toString
返回:
此 collection 的字元串表示形式。

相關詞條

相關搜尋

熱門詞條

聯絡我們