|
JavaTM 2 Platform Standard Ed. 6 |
|||||||||
上一個類別 下一個類別 | 框架 無框架 | |||||||||
摘要: 巢狀 | 欄位 | 建構子 | 方法 | 詳細資訊: 欄位 | 建構子 | 方法 |
java.lang.Object java.util.AbstractCollection<E> java.util.AbstractSet<E> java.util.EnumSet<E>
public abstract class EnumSet<E extends Enum<E>>
與列舉型別一起使用的專用 Set
實作。列舉 set 中所有鍵都必須來自單個列舉型別,該列舉型別在創建 set 時顯式或隱式地指定。列舉 set 在內部表示為位元向量。此表示形式非常緊湊且高效。此類別的空間和時間性能應該很好,足以用作傳統上基於 int 的“位標誌”的替換形式,具有高品質、型別安全的優勢。如果其參數也是一個列舉 set,則批量操作(如 containsAll 和 retainAll)也應運行得非常快。
由 iterator 方法返回的迭代器按其自然順序 遍歷這些元素(該順序是宣告列舉常數的順序)。返回的迭代器是弱一致的:它從不拋出 ConcurrentModificationException
,也不一定顯示在迭代進行時發生的任何 set 修改的效果。
不允許使用 null 元素。試圖插入 null 元素將拋出 NullPointerException
。但是,試圖測試是否出現 null 元素或移除 null 元素將不會拋出異常。
像大多數 collection 實作一樣,EnumSet 是不同步的。如果多個執行緒同時存取一個列舉 set,並且至少有一個執行緒修改該 set,則此列舉 set 在外部應該是同步的。這通常是通過對自然封裝該列舉 set 的物件執行同步操作來完成的。如果不存在這樣的物件,則應該使用 Collections.synchronizedSet(java.util.Set
方法來“包裹”該 set。最好在創建時完成這一操作,以防止意外的非同步存取:
Set<MyEnum> s = Collections.synchronizedSet(EnumSet.noneOf(MyEnum.class));
實作注意事項:所有基本操作都在固定時間內執行。雖然並不保證,但它們很可能比其 HashSet
副本更快。如果其參數也是一個列舉 set ,則批量操作會在固定時間內執行。
此類別是 Java Collections Framework 的成員。
EnumMap
方法摘要 | ||
---|---|---|
static
|
allOf(Class<E> elementType)
創建一個套件含指定元素型別的所有元素的列舉 set。 |
|
EnumSet<E> |
clone()
返回 set 的副本。 |
|
static
|
complementOf(EnumSet<E> s)
創建一個其元素型別與指定列舉 set 相同的列舉 set,最初包含指定 set 中所不 套件含的此型別的所有元素。 |
|
static
|
copyOf(Collection<E> c)
創建一個從指定 collection 初始化的列舉 set。 |
|
static
|
copyOf(EnumSet<E> s)
創建一個其元素型別與指定列舉 set 相同的列舉 set,最初包含相同的元素(如果有的話)。 |
|
static
|
noneOf(Class<E> elementType)
創建一個具有指定元素型別的空列舉 set。 |
|
static
|
of(E e)
創建一個最初包含指定元素的列舉 set。 |
|
static
|
of(E first,
E... rest)
創建一個最初包含指定元素的列舉 set。 |
|
static
|
of(E e1,
E e2)
創建一個最初包含指定元素的列舉 set。 |
|
static
|
of(E e1,
E e2,
E e3)
創建一個最初包含指定元素的列舉 set。 |
|
static
|
of(E e1,
E e2,
E e3,
E e4)
創建一個最初包含指定元素的列舉 set。 |
|
static
|
of(E e1,
E e2,
E e3,
E e4,
E e5)
創建一個最初包含指定元素的列舉 set。 |
|
static
|
range(E from,
E to)
創建一個最初包含由兩個指定端點所定義範圍內的所有元素的列舉 set。 |
從類別 java.util.AbstractSet 繼承的方法 |
---|
equals, hashCode, removeAll |
從類別 java.util.AbstractCollection 繼承的方法 |
---|
add, addAll, clear, contains, containsAll, isEmpty, iterator, remove, retainAll, size, toArray, toArray, toString |
從類別 java.lang.Object 繼承的方法 |
---|
finalize, getClass, notify, notifyAll, wait, wait, wait |
從介面 java.util.Set 繼承的方法 |
---|
add, addAll, clear, contains, containsAll, isEmpty, iterator, remove, retainAll, size, toArray, toArray |
方法詳細資訊 |
---|
public static <E extends Enum<E>> EnumSet<E> noneOf(Class<E> elementType)
elementType
- 此列舉 set 的元素型別的 class 物件
NullPointerException
- 如果 elementType 為 nullpublic static <E extends Enum<E>> EnumSet<E> allOf(Class<E> elementType)
elementType
- 此列舉 set 的元素型別的 class 物件
NullPointerException
- 如果 elementType 為 nullpublic static <E extends Enum<E>> EnumSet<E> copyOf(EnumSet<E> s)
s
- 用於初始化此列舉 set 的列舉 set
NullPointerException
- 如果 s 為 nullpublic static <E extends Enum<E>> EnumSet<E> copyOf(Collection<E> c)
copyOf(EnumSet)
相同。否則,指定的 collection 必須至少包含一個元素(以確定新列舉 set 的元素型別)。
c
- 用於初始化此列舉 set 的 collection
IllegalArgumentException
- 如果 c 不是一個 EnumSet 實例,並且不包含元素
NullPointerException
- 如果 c 為 nullpublic static <E extends Enum<E>> EnumSet<E> complementOf(EnumSet<E> s)
s
- 用其補碼初始化此列舉 set 的列舉 set
NullPointerException
- 如果 s 為 nullpublic static <E extends Enum<E>> EnumSet<E> of(E e)
e
- 此 set 最初包含的元素
NullPointerException
- 如果 e 為 nullpublic static <E extends Enum<E>> EnumSet<E> of(E e1, E e2)
e1
- 此 set 最初要包含的元素e2
- 此 set 最初要包含的另一個元素
NullPointerException
- 如果任意參數為 nullpublic static <E extends Enum<E>> EnumSet<E> of(E e1, E e2, E e3)
e1
- 此 set 最初要包含的元素e2
- 此 set 最初要包含的另一個元素e3
- 此 set 最初要包含的另一個元素
NullPointerException
- 如果任意參數為 nullpublic static <E extends Enum<E>> EnumSet<E> of(E e1, E e2, E e3, E e4)
e1
- 此 set 最初要包含的元素e2
- 此 set 最初要包含的另一個元素e3
- 此 set 最初要包含的另一個元素e4
- 此 set 最初要包含的另一個元素
NullPointerException
- 如果任意參數為 nullpublic static <E extends Enum<E>> EnumSet<E> of(E e1, E e2, E e3, E e4, E e5)
e1
- 此 set 最初要包含的元素e2
- 此 set 最初要包含的另一個元素e3
- 此 set 最初要包含的另一個元素e4
- 此 set 最初要包含的另一個元素e5
- 此 set 最初要包含的另一個元素
NullPointerException
- 如果任意參數為 nullpublic static <E extends Enum<E>> EnumSet<E> of(E first, E... rest)
first
- 此 set 最初要包含的元素rest
- 此 set 最初要包含的其餘元素
NullPointerException
- 如果任意參數為 null,或 rest 為 nullpublic static <E extends Enum<E>> EnumSet<E> range(E from, E to)
from
- 該範圍中的第一個元素to
- 妨礙範圍中的最後一個元素
NullPointerException
- 如果 first 或 last 為 null
IllegalArgumentException
- 如果 first.compareTo(last) > 0public EnumSet<E> clone()
Object
中的 clone
Cloneable
|
JavaTM 2 Platform Standard Ed. 6 |
|||||||||
上一個類別 下一個類別 | 框架 無框架 | |||||||||
摘要: 巢狀 | 欄位 | 建構子 | 方法 | 詳細資訊: 欄位 | 建構子 | 方法 |
版權所有 2008 Sun Microsystems, Inc. 保留所有權利。請遵守GNU General Public License, version 2 only。