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.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 ,且在迭代過程中,可能會或不會顯示任何修改集的效果。
不允許使用空元素。 嘗試插入空元素會拋出 NullPointerException。 然而,嘗試檢測空元素或移除空元素時,功能會正常運作。
與大多數集合實作一樣, EnumSet 並非同步。 如果多個執行緒同時存取一個枚舉集合,且至少有一個執行緒修改了該集合,則應該在外部同步。 這通常是透過在某個自然封裝 enum 集合的物件上同步來達成。 若不存在此類物件,則應使用該 Collections#synchronizedSet 方法「包裝」該集合。 此操作最好在建立時進行,以防止意外非同步存取:
Set<MyEnum> s = Collections.synchronizedSet(EnumSet.noneOf(MyEnum.class));
實作說明:所有基本操作皆以常數時間執行。 它們很可能(雖然不保證)比同類快 HashSet 得多。 即使是批次操作,如果參數也是枚舉集合,也會以常數時間執行。
此類別是 Java 集合框架的成員。
已在1.5中新增。
此頁面的部分是根據 Android 開放原始碼專案所建立和共用的工作進行修改,並根據 Creative Commons 2.5 屬性授權中所述的詞彙使用。
建構函式
| 名稱 | Description |
|---|---|
| EnumSet(IntPtr, JniHandleOwnership) |
用於建立 JNI 物件受管理表示的建構器;由執行時呼叫。 |
屬性
| 名稱 | Description |
|---|---|
| Class |
傳回這個 |
| Handle |
基礎Android實例的句柄。 (繼承來源 Object) |
| IsEmpty |
待補充 (繼承來源 AbstractCollection) |
| JniIdentityHashCode |
取得由互通執行時指派給此 Java 對等端的身份雜湊碼。 (繼承來源 Object) |
| JniManagedPeerState |
專門用於列舉型別的實 |
| JniPeerMembers |
專門用於列舉型別的實 |
| PeerReference |
取得這個 Java 節點的 JNI 物件參考。 (繼承來源 Object) |
| ThresholdClass |
此 API 支援 Mono for Android 基礎架構,並非直接從你的程式碼中使用。 |
| ThresholdType |
此 API 支援 Mono for Android 基礎架構,並非直接從你的程式碼中使用。 |
方法
明確介面實作
| 名稱 | Description |
|---|---|
| IJavaPeerable.Disposed() |
專門用於列舉型別的實 |
| IJavaPeerable.Finalized() |
專門用於列舉型別的實 |
| IJavaPeerable.JniObjectReferenceControlBlock |
專門用於列舉型別的實 |
| IJavaPeerable.SetJniIdentityHashCode(Int32) |
專門用於列舉型別的實 |
| IJavaPeerable.SetJniManagedPeerState(JniManagedPeerStates) |
專門用於列舉型別的實 |
| IJavaPeerable.SetPeerReference(JniObjectReference) |
專門用於列舉型別的實 |
| IJavaPeerable.UnregisterFromRuntime() |
專門用於列舉型別的實 |
擴充方法
| 名稱 | Description |
|---|---|
| GetJniTypeName(IJavaPeerable) |
取得實例 |
| JavaAs<TResult>(IJavaPeerable) |
試著強制 |
| JavaCast<TResult>(IJavaObject) |
執行 Android 執行時間檢查的類型轉換。 |
| JavaCast<TResult>(IJavaObject) |
專門用於列舉型別的實 |
| ToEnumerable(IIterable) |
回傳 和 IEnumerable ,會對 Java IIterable進行迭代,允許 |
| ToEnumerable<T>(IIterable) |
回傳 和 IEnumerable<T> ,該 在 Java IIterable上迭代,將每個元素 集結為 |
| TryJavaCast<TResult>(IJavaPeerable, TResult) |
試著強制 |