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 ,并且它可能会或可能不会显示对迭代正在进行时发生的集的任何修改的影响。
不允许使用 Null 元素。 尝试插入 null 元素将引发 NullPointerException。 尝试测试是否存在 null 元素或删除一个元素,但会正常运行。
与大多数集合实现一样, EnumSet 不会同步。 如果多个线程并发访问枚举集,并且至少有一个线程修改了该集,则应在外部同步它。 这通常是通过在自然封装枚举集的某些对象上进行同步来实现的。 如果不存在此类对象,则应使用 Collections#synchronizedSet 该方法“包装”集。 最好在创建时完成此操作,以防止意外的未同步访问:
Set<MyEnum> s = Collections.synchronizedSet(EnumSet.noneOf(MyEnum.class));
实现说明:所有基本操作都在恒定时间内执行。 他们很可能(虽然不能保证)比同行 HashSet 快得多。 即使批量操作在常量时间内执行(如果其参数也是枚举集)。
此类是 Java Collections Framework 的成员。
在 1.5 中添加。
本页的某些部分是根据 创建和共享的工作进行的修改,并根据 许可证中所述的条款使用。
构造函数
| 名称 | 说明 |
|---|---|
| EnumSet(IntPtr, JniHandleOwnership) |
创建 JNI 对象的托管表示形式时使用的构造函数;由运行时调用。 |
属性
| 名称 | 说明 |
|---|---|
| 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 基础结构,不打算直接从代码使用。 |
方法
显式接口实现
| 名称 | 说明 |
|---|---|
| IJavaPeerable.Disposed() |
用于枚举类型的专用 |
| IJavaPeerable.Finalized() |
用于枚举类型的专用 |
| IJavaPeerable.JniObjectReferenceControlBlock |
用于枚举类型的专用 |
| IJavaPeerable.SetJniIdentityHashCode(Int32) |
用于枚举类型的专用 |
| IJavaPeerable.SetJniManagedPeerState(JniManagedPeerStates) |
用于枚举类型的专用 |
| IJavaPeerable.SetPeerReference(JniObjectReference) |
用于枚举类型的专用 |
| IJavaPeerable.UnregisterFromRuntime() |
用于枚举类型的专用 |
扩展方法
| 名称 | 说明 |
|---|---|
| GetJniTypeName(IJavaPeerable) |
获取实例 |
| JavaAs<TResult>(IJavaPeerable) |
尝试强制 |
| JavaCast<TResult>(IJavaObject) |
执行 Android 运行时检查的类型转换。 |
| JavaCast<TResult>(IJavaObject) |
用于枚举类型的专用 |
| ToEnumerable(IIterable) |
用于枚举类型的专用 |
| ToEnumerable<T>(IIterable) |
用于枚举类型的专用 |
| TryJavaCast<TResult>(IJavaPeerable, TResult) |
尝试强制 |