鴻蒙OS AbstractSet

2022-07-08 13:38 更新

AbstractSet

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

構造函數詳細信息

AbstractSet

protected AbstractSet()

唯一的構造函數。 (用于子類構造函數的調用,通常是隱式的。)

方法詳情

equals

public boolean equals(Object o)

比較指定對象與此集合是否相等。 如果給定對象也是一個集合,則返回 true,這兩個集合具有相同的大小,并且給定集合的每個成員都包含在該集合中。 這確保了 equals 方法在 Set 接口的不同實現中正常工作。

這個實現首先檢查指定的對象是否是這個集合; 如果是,則返回 true。 然后,它檢查指定的對象是否是一個集合,其大小與該集合的大小相同; 如果不是,則返回 false。 如果是,則返回 containsAll((Collection) o)。

指定者:

接口 CollectionE 中的等于

指定者:

接口 SetE 中的等于

覆蓋:

類 Object 中的等于

參數:

參數名稱 參數描述
o 要與此集合比較是否相等的對象

返回:

如果指定的對象等于此集合,則為 true

hashCode

public int hashCode()

返回此集合的哈希碼值。 集合的哈希碼定義為集合中元素的哈希碼之和,其中空元素的哈希碼定義為零。 這確保了 s1.equals(s2) 意味著任何兩個集合 s1 和 s2 的 s1.hashCode()==s2.hashCode(),這是 Object#hashCode 的一般合同所要求的。

此實現對集合進行迭代,對集合中的每個元素調用 hashCode 方法,并將結果相加。

指定者:

接口 CollectionE 中的 hashCode

指定者:

接口 SetE 中的 hashCode

覆蓋:

類 Object 中的 hashCode

返回:

此集合的哈希碼值

removeAll

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 如果此集合包含空元素并且指定的集合不允許空元素(可選),或者指定的集合為空
以上內容是否對您有幫助:
在線筆記
App下載
App下載

掃描二維碼

下載編程獅App

公眾號
微信公眾號

編程獅公眾號