鴻蒙OS EnumSet

2022-07-19 15:58 更新

EnumSet

java.lang.Object

|---java.util.AbstractCollection<E&

|---|---java.util.AbstractSet<E&

|---|---|---java.util.EnumSet<E&

  1. public abstract class EnumSet<E extends Enum<E>>
  2. extends AbstractSet<E>
  3. implements Cloneable, Serializable

用于枚舉類型的專用 Set 實現(xiàn)。枚舉集合中的所有元素都必須來自一個枚舉類型,該枚舉類型在創(chuàng)建集合時顯式或隱式指定。枚舉集在內部表示為位向量。這種表示非常緊湊和高效。這個類的空間和時間性能應該足夠好,以允許它用作傳統(tǒng)的基于 int 的“位標志”的高質量、類型安全的替代品。如果參數(shù)也是枚舉集,即使批量操作(例如 containsAll 和 retainAll)也應該運行得非??臁?/p>

iterator 方法返回的迭代器以元素的自然順序(聲明枚舉常量的順序)遍歷元素。返回的迭代器是弱一致的:它永遠不會拋出 ConcurrentModificationException 并且它可能會或可能不會顯示迭代正在進行時對集合進行的任何修改的影響。

不允許空元素。嘗試插入空元素將引發(fā) NullPointerException。但是,嘗試測試是否存在空元素或刪除空元素將正常運行。

像大多數(shù)集合實現(xiàn)一樣,EnumSet 是不同步的。如果多個線程同時訪問一個枚舉集,并且至少有一個線程修改了該集,則它應該在外部同步。這通常是通過同步一些自然封裝枚舉集的對象來完成的。如果不存在這樣的對象,則應使用 Collections#synchronizedSet 方法“包裝”該集合。這最好在創(chuàng)建時完成,以防止意外的不同步訪問:

  1. Set<MyEnum> s = Collections.synchronizedSet(EnumSet.noneOf(MyEnum.class));

實施說明:所有基本操作都在恒定時間內執(zhí)行。 它們很可能(盡管不能保證)比它們的 HashSet 對應物快得多。 如果參數(shù)也是枚舉集,即使批量操作也會在恒定時間內執(zhí)行。

此類是 Java 集合框架的成員。

方法總結

修飾符和類型 方法 描述
static <E extends Enum<E>>EnumSet<E> allOf(Class<E> elementType) 創(chuàng)建一個枚舉集,其中包含指定元素類型中的所有元素。
EnumSetE clone() 返回此集合的副本。
static <E extends Enum<E>>EnumSet<E> complementOf(EnumSet<E> s) 創(chuàng)建一個與指定枚舉集具有相同元素類型的枚舉集,最初包含該類型的所有未包含在指定集中的元素。
static <E extends Enum<E>>EnumSet<E> copyOf(Collection<E> c) 創(chuàng)建從指定集合初始化的枚舉集。
static <E extends Enum<E>>EnumSet<E> copyOf(EnumSet<E> s) 創(chuàng)建一個與指定枚舉集具有相同元素類型的枚舉集,最初包含相同的元素(如果有)。
static <E extends Enum<E>>EnumSet<E> noneOf(Class<E> elementType) 創(chuàng)建具有指定元素類型的空枚舉集。
static <E extends Enum<E>>EnumSet<E> of(E e) 創(chuàng)建一個最初包含指定元素的枚舉集。
static <E extends Enum<E>>EnumSet<E> of(E e1, E e2) 創(chuàng)建一個最初包含指定元素的枚舉集。
static <E extends Enum<E>>EnumSet<E> of(E first, E... rest) 創(chuàng)建一個最初包含指定元素的枚舉集。
static <E extends Enum<E>>EnumSet<E> of(E e1, E e2, E e3) 創(chuàng)建一個最初包含指定元素的枚舉集。
static <E extends Enum<E>>EnumSet<E> of(E e1, E e2, E e3, E e4) 創(chuàng)建一個最初包含指定元素的枚舉集。
static <E extends Enum<E>>EnumSet<E> of(E e1, E e2, E e3, E e4, E e5) 創(chuàng)建一個最初包含指定元素的枚舉集。
static <E extends Enum<E>>EnumSet<E> range(E from, E to) 創(chuàng)建一個枚舉集,最初包含由兩個指定端點定義的范圍內的所有元素。
從類 java.util.AbstractCollection 繼承的方法
add, addAll, clear, contains, containsAll, isEmpty, iterator, remove, retainAll, size, toArray, toArray, toString
從類 java.util.AbstractSet 繼承的方法
equals, hashCode, removeAll
從接口 java.util.Collection 繼承的方法
parallelStream, removeIf, stream
從接口 java.lang.Iterable 繼承的方法
forEach
從類 java.lang.Object 繼承的方法
finalize, getClass, notify, notifyAll, wait, wait, wait
從接口 java.util.Set 繼承的方法
add, addAll, clear, contains, containsAll, isEmpty, iterator, remove, retainAll, size, spliterator, toArray, toArray

方法詳情

noneOf

public static <E extends Enum<E>> EnumSet<E> noneOf(Class<E> elementType)

創(chuàng)建具有指定元素類型的空枚舉集。

類型參數(shù):

類型參數(shù)名稱 類型參數(shù)描述
E 集合中元素的類別

參數(shù):

參數(shù)名稱 參數(shù)描述
elementType 此枚舉集的元素類型的類對象

返回:

指定類型的空枚舉集。

Throws:

Throw名稱 Throw描述
NullPointerException 如果元素類型為空

allOf

public static <E extends Enum<E>> EnumSet<E> allOf(Class<E> elementType)

創(chuàng)建一個枚舉集,其中包含指定元素類型中的所有元素。

類型參數(shù):

類型參數(shù)名稱 類型參數(shù)描述
E 集合中元素的類別

參數(shù):

參數(shù)名稱 參數(shù)描述
elementType 此枚舉集的元素類型的類對象

返回:

包含指定類型中所有元素的枚舉集。

Throws:

Throw名稱 Throw描述
NullPointerException 如果 elementType 為空

copyOf

public static <E extends Enum<E>> EnumSet<E> copyOf(EnumSet<E> s)

創(chuàng)建一個與指定枚舉集具有相同元素類型的枚舉集,最初包含相同的元素(如果有)。

類型參數(shù):

類型參數(shù)名稱 類型參數(shù)描述
E 集合中元素的類別

參數(shù):

參數(shù)名稱 參數(shù)描述
s 從中初始化此枚舉集的枚舉集

返回:

指定枚舉集的副本。

Throws:

Throw名稱 Throw描述
NullPointerException 如果 s 為空

copyOf

public static <E extends Enum<E>> EnumSet<E> copyOf(Collection<E> c)

創(chuàng)建從指定集合初始化的枚舉集。 如果指定的集合是 EnumSet 實例,則此靜態(tài)工廠方法的行為與 copyOf(java.util.EnumSet) 相同。 否則,指定的集合必須至少包含一個元素(以確定新枚舉集的元素類型)。

類型參數(shù):

類型參數(shù)名稱 類型參數(shù)描述
E 集合中元素的類

參數(shù):

參數(shù)名稱 參數(shù)描述
c 從中初始化此枚舉集的集合

返回:

從給定集合初始化的枚舉集。

Throws:

Throw名稱 Throw描述
IllegalArgumentException 如果 c 不是 EnumSet 實例并且不包含任何元素
NullPointerException 如果 c 為空

complementOf

public static <E extends Enum<E>> EnumSet<E> complementOf(EnumSet<E> s)

創(chuàng)建一個與指定枚舉集具有相同元素類型的枚舉集,最初包含該類型的所有未包含在指定集中的元素。

類型參數(shù):

類型參數(shù)名稱 類型參數(shù)描述
E 枚舉集中元素的類

參數(shù):

參數(shù)名稱 參數(shù)描述
s 初始化此枚舉集的補碼的枚舉集

返回:

此集合中指定集合的補集

Throws:

Throw名稱 Throw描述
NullPointerException 如果 s 為空

of

public static <E extends Enum<E>> EnumSet<E> of(E e)

創(chuàng)建一個最初包含指定元素的枚舉集。 存在此方法的重載以初始化具有一到五個元素的枚舉集。 提供了使用可變參數(shù)功能的第六個重載。 此重載可用于創(chuàng)建最初包含任意數(shù)量元素的枚舉集,但可能比不使用可變參數(shù)的重載運行得更慢。

類型參數(shù):

類型參數(shù)名稱 類型參數(shù)描述
E 指定元素和集合的類

參數(shù):

參數(shù)名稱 參數(shù)描述
e 該集合最初要包含的元素

返回:

最初包含指定元素的枚舉集

Throws:

Throw名稱 Throw描述
NullPointerException 如果 e 為空

of

public static <E extends Enum<E>> EnumSet<E> of(E e1, E e2)

創(chuàng)建一個最初包含指定元素的枚舉集。 存在此方法的重載以初始化具有一到五個元素的枚舉集。 提供了使用可變參數(shù)功能的第六個重載。 此重載可用于創(chuàng)建最初包含任意數(shù)量元素的枚舉集,但可能比不使用可變參數(shù)的重載運行得更慢。

類型參數(shù):

類型參數(shù)名稱 類型參數(shù)描述
E 參數(shù)元素和集合的類

參數(shù):

參數(shù)名稱 參數(shù)描述
e1 該集合最初要包含的元素
e2 該集合最初要包含的另一個元素

返回:

最初包含指定元素的枚舉集

Throws:

Throw名稱 Throw描述
NullPointerException 如果任何參數(shù)為空

of

public static <E extends Enum<E>> EnumSet<E> of(E e1, E e2, E e3)

創(chuàng)建一個最初包含指定元素的枚舉集。 存在此方法的重載以初始化具有一到五個元素的枚舉集。 提供了使用可變參數(shù)功能的第六個重載。 此重載可用于創(chuàng)建最初包含任意數(shù)量元素的枚舉集,但可能比不使用可變參數(shù)的重載運行得更慢。

類型參數(shù):

類型參數(shù)名稱 類型參數(shù)描述
E 參數(shù)元素和集合的類

參數(shù):

參數(shù)名稱 參數(shù)描述
e1 該集合最初要包含的元素
e2 該集合最初要包含的另一個元素
e3 該集合最初要包含的另一個元素

返回:

最初包含指定元素的枚舉集

Throws:

Throw名稱 Throw描述
NullPointerException 如果任何參數(shù)為空

of

public static <E extends Enum<E>> EnumSet<E> of(E e1, E e2, E e3, E e4)

創(chuàng)建一個最初包含指定元素的枚舉集。 存在此方法的重載以初始化具有一到五個元素的枚舉集。 提供了使用可變參數(shù)功能的第六個重載。 此重載可用于創(chuàng)建最初包含任意數(shù)量元素的枚舉集,但可能比不使用可變參數(shù)的重載運行得更慢。

類型參數(shù):

類型參數(shù)名稱 類型參數(shù)描述
E 參數(shù)元素和集合的類

參數(shù):

參數(shù)名稱 參數(shù)描述
e1 該集合最初要包含的元素
e2 該集合最初要包含的另一個元素
e3 該集合最初要包含的另一個元素
e4 該集合最初要包含的另一個元素

返回:

最初包含指定元素的枚舉集

Throws:

Throw名稱 Throw描述
NullPointerException 如果任何參數(shù)為空

of

public static <E extends Enum<E>> EnumSet<E> of(E e1, E e2, E e3, E e4, E e5)

創(chuàng)建一個最初包含指定元素的枚舉集。 存在此方法的重載以初始化具有一到五個元素的枚舉集。 提供了使用可變參數(shù)功能的第六個重載。 此重載可用于創(chuàng)建最初包含任意數(shù)量元素的枚舉集,但可能比不使用可變參數(shù)的重載運行得更慢。

類型參數(shù):

類型參數(shù)名稱 類型參數(shù)描述
E 參數(shù)元素和集合的類

參數(shù):

參數(shù)名稱 參數(shù)描述
e1 該集合最初要包含的元素
e2 該集合最初要包含的另一個元素
e3 該集合最初要包含的另一個元素
e4 該集合最初要包含的另一個元素
e5 該集合最初要包含的另一個元素

返回:

最初包含指定元素的枚舉集

Throws:

Throw名稱 Throw描述
NullPointerException 如果任何參數(shù)為空

of

@SafeVarargs public static <E extends Enum<E>> EnumSet<E> of(E first, E... rest)

創(chuàng)建一個最初包含指定元素的枚舉集。 這個工廠,其參數(shù)列表使用可變參數(shù)特性,可用于創(chuàng)建最初包含任意數(shù)量元素的枚舉集,但它可能比不使用可變參數(shù)的重載運行得更慢。

類型參數(shù):

類型參數(shù)名稱 類型參數(shù)描述
E 參數(shù)元素和集合的類

參數(shù):

參數(shù)名稱 參數(shù)描述
first 集合最初要包含的元素
rest 集合最初包含的剩余元素

返回:

最初包含指定元素的枚舉集

Throws:

Throw名稱 Throw描述
NullPointerException 如果任何指定的元素為 null,或者 rest 為 null

range

public static <E extends Enum<E>> EnumSet<E> range(E from, E to)

創(chuàng)建一個枚舉集,最初包含由兩個指定端點定義的范圍內的所有元素。 返回的集合將包含端點本身,它們可能相同但不能亂序。

類型參數(shù):

類型參數(shù)名稱 類型參數(shù)描述
E 參數(shù)元素和集合的類

參數(shù):

參數(shù)名稱 參數(shù)描述
from 范圍內的第一個元素
to 范圍內的最后一個元素

返回:

一個枚舉集,最初包含由兩個指定端點定義的范圍內的所有元素

Throws:

Throw名稱 Throw描述
NullPointerException 如果 from 或 to 為空
IllegalArgumentException 如果 from.compareTo(to) > 0

clone

public EnumSetE clone()

返回此集合的副本。

覆蓋:

在類 Object 中克隆

返回:

這套副本

以上內容是否對您有幫助:
在線筆記
App下載
App下載

掃描二維碼

下載編程獅App

公眾號
微信公眾號

編程獅公眾號