EnumSet 類別
定義
重要
部分資訊涉及發行前產品,在發行之前可能會有大幅修改。 Microsoft 對此處提供的資訊,不做任何明確或隱含的瑕疵擔保。
與列舉類型搭配使用的特製化 Set
實作。
[Android.Runtime.Register("java/util/EnumSet", DoNotGenerateAcw=true)]
[Java.Interop.JavaTypeParameters(new System.String[] { "E extends java.lang.Enum<E>" })]
public abstract class EnumSet : Java.Util.AbstractSet, IDisposable, Java.Interop.IJavaPeerable, Java.IO.ISerializable, Java.Lang.ICloneable
[<Android.Runtime.Register("java/util/EnumSet", DoNotGenerateAcw=true)>]
[<Java.Interop.JavaTypeParameters(new System.String[] { "E extends java.lang.Enum<E>" })>]
type EnumSet = class
inherit AbstractSet
interface ISerializable
interface IJavaObject
interface IDisposable
interface IJavaPeerable
interface ICloneable
- 繼承
- 屬性
- 實作
備註
與列舉類型搭配使用的特製化 Set
實作。 列舉集中的所有項目都必須來自建立集合時所指定、明確或隱含的單一列舉類型。 列舉集會在內部表示為位向量。 這個表示非常精簡且有效率。 這個類別的空間和時間效能應該足夠好,以允許其作為傳統 int
型「位旗標」的高品質型別替代方式。 即使大量作業(例如 containsAll
和 retainAll
)在自變數也是列舉集時,也應該非常快速地執行。
方法傳 iterator
回的反覆運算器會以其 自然順序 周遊元素(宣告列舉常數的順序)。 傳回的反覆運算器較 弱一致:它永遠不會擲回 ConcurrentModificationException
,而且它可能不會顯示反覆運算進行時所發生之集合的任何修改效果。
不允許 Null 元素。 試著插入 Null 專案會擲回 NullPointerException
。 嘗試測試 Null 元素是否存在,或移除 null 元素,但會正常運作。
和大部分的集合實作一樣, EnumSet
不會同步處理。 如果多個線程同時存取列舉集,而且至少有一個線程修改集合,則它應該在外部同步處理。 這通常是藉由在自然封裝列舉集的某些對象上進行同步處理來完成。 如果不存在這類物件,則集合應該使用 Collections#synchronizedSet
方法「包裝」。 這最好是在建立時完成,以防止意外的未同步存取:
Set<MyEnum> s = Collections.synchronizedSet(EnumSet.noneOf(MyEnum.class));
實作注意事項:所有基本作業都會以固定時間執行。 他們很可能(雖然不保證)比他們的 HashSet
對手快得多。 即使大量作業在常數時間執行,如果自變數也是列舉集。
這個類別是 Java Collections Framework 的成員。
已在1.5中新增。
此頁面的部分是根據 Android 開放原始碼專案所建立和共用的工作進行修改,並根據 Creative Commons 2.5 屬性授權中所述的詞彙使用。
建構函式
EnumSet(IntPtr, JniHandleOwnership) |
建立 JNI 物件的 Managed 表示法時使用的建構函式;由運行時間呼叫。 |
屬性
Class |
傳回這個 |
Handle |
基礎Android實例的句柄。 (繼承來源 Object) |
IsEmpty |
要新增 (繼承來源 AbstractCollection) |
JniIdentityHashCode |
與列舉類型搭配使用的特製化 |
JniPeerMembers |
與列舉類型搭配使用的特製化 |
PeerReference |
與列舉類型搭配使用的特製化 |
ThresholdClass |
此 API 支援適用於 Android 的 Mono 基礎結構,並不適合直接從您的程式代碼使用。 |
ThresholdType |
此 API 支援適用於 Android 的 Mono 基礎結構,並不適合直接從您的程式代碼使用。 |
方法
Add(Object) |
要新增 (繼承來源 AbstractCollection) |
AddAll(ICollection) |
要新增 (繼承來源 AbstractCollection) |
AllOf(Class) |
建立列舉集,其中包含指定之項目類型中的所有專案。 |
Clear() |
要新增 (繼承來源 AbstractCollection) |
Clone() |
傳回這個集合的複本。 |
ComplementOf(EnumSet) |
建立具有與指定列舉集相同項目類型的列舉集,一開始包含此類型 未 包含在指定集合中的所有專案。 |
Contains(Object) |
要新增 (繼承來源 AbstractCollection) |
ContainsAll(ICollection) |
要新增 (繼承來源 AbstractCollection) |
CopyOf(EnumSet) |
使用與指定列舉集相同的項目類型建立列舉集,一開始包含相同專案(如果有的話)。 |
CopyOf(ICollection) |
從指定的集合建立初始化的列舉集。 |
Dispose() |
與列舉類型搭配使用的特製化 |
Dispose(Boolean) |
與列舉類型搭配使用的特製化 |
Equals(Object) |
指出其他物件是否「等於」這個物件。 (繼承來源 Object) |
GetHashCode() |
傳回此物件的雜湊碼值。 (繼承來源 Object) |
Iterator() |
傳回這個集合中所含專案的反覆運算器。 (繼承來源 AbstractCollection) |
JavaFinalize() |
當垃圾收集決定不再參考物件時,垃圾收集行程在 物件上呼叫。 (繼承來源 Object) |
NoneOf(Class) |
使用指定的項目類型建立空列舉集。 |
Notify() |
喚醒正在等候此物件監視器的單一線程。 (繼承來源 Object) |
NotifyAll() |
喚醒正在等候此物件監視器的所有線程。 (繼承來源 Object) |
Of(Object) |
建立一開始包含指定專案的列舉集。 |
Of(Object, Object) |
建立一開始包含指定元素的列舉集。 |
Of(Object, Object, Object) |
建立一開始包含指定元素的列舉集。 |
Of(Object, Object, Object, Object) |
建立一開始包含指定元素的列舉集。 |
Of(Object, Object, Object, Object, Object) |
建立一開始包含指定元素的列舉集。 |
Of(Object, Object[]) |
建立一開始包含指定元素的列舉集。 |
Range(Object, Object) |
建立列舉集,一開始包含兩個指定端點所定義範圍中的所有專案。 |
Remove(Object) |
要新增 (繼承來源 AbstractCollection) |
RemoveAll(ICollection) |
要新增 (繼承來源 AbstractCollection) |
RetainAll(ICollection) |
要新增 (繼承來源 AbstractCollection) |
SetHandle(IntPtr, JniHandleOwnership) |
設定 Handle 屬性。 (繼承來源 Object) |
Size() |
傳回這個 |
ToArray() |
要新增 (繼承來源 AbstractCollection) |
ToArray(Object[]) |
要新增 (繼承來源 AbstractCollection) |
ToArray<T>() |
與列舉類型搭配使用的特製化 |
ToString() |
傳回物件的字串表示。 (繼承來源 Object) |
UnregisterFromRuntime() |
與列舉類型搭配使用的特製化 |
Wait() |
讓目前線程等候直到喚醒為止,通常是藉由em <notified/em>或<em>interrupted</em> 來喚醒它。<> (繼承來源 Object) |
Wait(Int64) |
讓目前的線程等到喚醒為止,通常是因為 <em>notified</em> 或 <em>interrupted</em>,或直到經過一定數量的實時為止。 (繼承來源 Object) |
Wait(Int64, Int32) |
讓目前的線程等到喚醒為止,通常是因為 <em>notified</em> 或 <em>interrupted</em>,或直到經過一定數量的實時為止。 (繼承來源 Object) |
明確介面實作
IJavaPeerable.Disposed() |
與列舉類型搭配使用的特製化 |
IJavaPeerable.DisposeUnlessReferenced() |
與列舉類型搭配使用的特製化 |
IJavaPeerable.Finalized() |
與列舉類型搭配使用的特製化 |
IJavaPeerable.JniManagedPeerState |
與列舉類型搭配使用的特製化 |
IJavaPeerable.SetJniIdentityHashCode(Int32) |
與列舉類型搭配使用的特製化 |
IJavaPeerable.SetJniManagedPeerState(JniManagedPeerStates) |
與列舉類型搭配使用的特製化 |
IJavaPeerable.SetPeerReference(JniObjectReference) |
與列舉類型搭配使用的特製化 |
擴充方法
JavaCast<TResult>(IJavaObject) |
執行 Android 執行時間檢查的類型轉換。 |
JavaCast<TResult>(IJavaObject) |
與列舉類型搭配使用的特製化 |
GetJniTypeName(IJavaPeerable) |
與列舉類型搭配使用的特製化 |
ToEnumerable(IIterable) |
與列舉類型搭配使用的特製化 |
ToEnumerable<T>(IIterable) |
與列舉類型搭配使用的特製化 |