W3Cschool
恭喜您成為首批注冊用戶
獲得88經驗值獎勵
java.lang.Object
|---java.util.AbstractCollection<E&
|---|---java.util.AbstractSet<E&
public abstract class AbstractSet<E>
extends AbstractCollection<E>
implements Set<E>
此類提供 Set 接口的骨架實現,以最大限度地減少實現此接口所需的工作量。
通過擴展此類實現集合的過程與通過擴展 AbstractCollection 實現集合的過程相同,只是該類的子類中的所有方法和構造函數都必須遵守 Set 接口施加的附加約束(例如, add 方法不得允許將對象的多個實例添加到集合中)。
請注意,此類不會覆蓋 AbstractCollection 類的任何實現。 它只是添加了 equals 和 hashCode 的實現。
此類是 Java 集合框架的成員。
修飾符 | 構造函數 | 描述 |
---|---|---|
protected | AbstractSet() | 唯一的構造函數。 |
修飾符和類型 | 方法 | 描述 |
---|---|---|
boolean | equals(Object o) | 比較指定對象與此集合是否相等。 |
int | hashCode() | 返回此集合的哈希碼值。 |
boolean | removeAll(Collection<?> c) | 從此集合中刪除指定集合中包含的所有元素(可選操作)。 |
從類 java.util.AbstractCollection 繼承的方法 |
---|
add, addAll, clear, contains, containsAll, isEmpty, iterator, remove, retainAll, size, toArray, toArray, toString |
從接口 java.util.Collection 繼承的方法 |
---|
parallelStream, removeIf, stream |
從接口 java.lang.Iterable 繼承的方法 |
---|
forEach |
從類 java.lang.Object 繼承的方法 |
---|
clone, finalize, getClass, notify, notifyAll, wait, wait, wait |
從接口 java.util.Set 繼承的方法 |
---|
add, addAll, clear, contains, containsAll, isEmpty, iterator, remove, retainAll, size, spliterator, toArray, toArray |
protected AbstractSet()
唯一的構造函數。 (用于子類構造函數的調用,通常是隱式的。)
public boolean equals(Object o)
比較指定對象與此集合是否相等。 如果給定對象也是一個集合,則返回 true,這兩個集合具有相同的大小,并且給定集合的每個成員都包含在該集合中。 這確保了 equals 方法在 Set 接口的不同實現中正常工作。
這個實現首先檢查指定的對象是否是這個集合; 如果是,則返回 true。 然后,它檢查指定的對象是否是一個集合,其大小與該集合的大小相同; 如果不是,則返回 false。 如果是,則返回 containsAll((Collection) o)。
指定者:
接口 CollectionE 中的等于
指定者:
接口 SetE 中的等于
覆蓋:
類 Object 中的等于
參數:
參數名稱 | 參數描述 |
---|---|
o | 要與此集合比較是否相等的對象 |
返回:
如果指定的對象等于此集合,則為 true
public int hashCode()
返回此集合的哈希碼值。 集合的哈希碼定義為集合中元素的哈希碼之和,其中空元素的哈希碼定義為零。 這確保了 s1.equals(s2) 意味著任何兩個集合 s1 和 s2 的 s1.hashCode()==s2.hashCode(),這是 Object#hashCode 的一般合同所要求的。
此實現對集合進行迭代,對集合中的每個元素調用 hashCode 方法,并將結果相加。
指定者:
接口 CollectionE 中的 hashCode
指定者:
接口 SetE 中的 hashCode
覆蓋:
類 Object 中的 hashCode
返回:
此集合的哈希碼值
public boolean removeAll(Collection<?> c)
從此集合中刪除指定集合中包含的所有元素(可選操作)。如果指定的集合也是一個集合,這個操作有效地修改了這個集合,使得它的值是兩個集合的不對稱集合差。
此實現通過在每個集合上調用 size 方法來確定該集合和指定集合中的較小者。如果這個集合的元素較少,則實現迭代這個集合,依次檢查迭代器返回的每個元素,看它是否包含在指定的集合中。如果它如此包含,則使用迭代器的 remove 方法將其從該集合中刪除。如果指定集合的元素較少,則實現迭代指定集合,使用此集合的 remove 方法從此集合中刪除迭代器返回的每個元素。
請注意,如果迭代器方法返回的迭代器未實現 remove 方法,則此實現將拋出 UnsupportedOperationException。
指定者:
接口 CollectionE 中的 removeAll
指定者:
接口 SetE 中的 removeAll
覆蓋:
類 AbstractCollectionE 中的 removeAll
參數:
參數名稱 | 參數描述 |
---|---|
c | 包含要從此集合中刪除的元素的集合 |
返回:
如果此集合因調用而更改,則為 true
Throws:
Throw名稱 | Throw描述 |
---|---|
UnsupportedOperationException | 如果此 set 不支持 removeAll 操作 |
ClassCastException | 如果此集合的元素的類與指定的集合不兼容(可選) |
NullPointerException | 如果此集合包含空元素并且指定的集合不允許空元素(可選),或者指定的集合為空 |
Copyright©2021 w3cschool編程獅|閩ICP備15016281號-3|閩公網安備35020302033924號
違法和不良信息舉報電話:173-0602-2364|舉報郵箱:jubao@eeedong.com
掃描二維碼
下載編程獅App
編程獅公眾號
聯系方式:
更多建議: