Share via


HashSet 类

定义

此类实现 Set 接口,该接口由哈希表 (实际 HashMap 实例) 。

[Android.Runtime.Register("java/util/HashSet", DoNotGenerateAcw=true)]
[Java.Interop.JavaTypeParameters(new System.String[] { "E" })]
public class HashSet : Java.Util.AbstractSet, IDisposable, Java.Interop.IJavaPeerable, Java.IO.ISerializable, Java.Lang.ICloneable
[<Android.Runtime.Register("java/util/HashSet", DoNotGenerateAcw=true)>]
[<Java.Interop.JavaTypeParameters(new System.String[] { "E" })>]
type HashSet = class
    inherit AbstractSet
    interface ISerializable
    interface IJavaObject
    interface IDisposable
    interface IJavaPeerable
    interface ICloneable
    interface ISet
    interface ICollection
    interface IIterable
继承
派生
属性
实现

注解

此类实现 Set 接口,该接口由哈希表 (实际 HashMap 实例) 。 它不保证集的迭代顺序;具体而言,它不保证订单随时间推移保持不变。 此类允许 null 元素。

此类为基本操作提供恒定的时间性能, (addremovecontainssize) ,假设哈希函数在存储桶中正确分散元素。 循环访问此集需要与实例大小之和 HashSet 成正比的时间, () 元素数加上后备 HashMap 实例的“容量” () 存储桶数。 因此,如果迭代性能很重要,则不要将初始容量设置为过高 (或负载因子过低) 非常重要。

<强>请注意,此实现不同步。</strong> 如果多个线程同时访问哈希集,并且至少有一个线程修改该集, 则必须 在外部同步该集。 这通常是通过在自然封装集的某个对象上同步来实现的。

如果不存在此类对象,应使用 Collections#synchronizedSet Collections.synchronizedSet 方法“包装”集。 最好在创建时执行此操作,以防止意外对集进行非同步访问:

Set s = Collections.synchronizedSet(new HashSet(...));

此类的 方法返回的 iterator 迭代器是 快速的:如果在创建迭代器后的任何时间修改集,除非通过迭代器自己的 remove 方法,否则迭代器将 ConcurrentModificationException引发 。 因此,面对并发修改,迭代器会快速且干净地失败,而不会在将来不确定的时间冒着任意、非确定性行为的风险。

请注意,无法保证迭代器的快速故障行为,因为一般来说,在出现非同步并发修改的情况下,不可能做出任何硬性保证。 故障快速迭代器会尽最大努力引发 ConcurrentModificationException 。 因此,编写依赖于此异常的程序的正确性是错误的: 迭代器的快速故障行为应仅用于检测 bug。

此类是 Java 集合框架的成员。

在 1.2 中添加。

java.util.HashSetJava 文档。

此页面的部分内容是基于 创建和共享的工作进行的修改,并根据 署名许可中所述的术语使用。

构造函数

HashSet()

构造新的空集;后备 HashMap 实例的默认初始容量 (16) ,负载因子 (0。

HashSet(ICollection)

构造包含指定集合中的元素的新集。

HashSet(Int32)

构造新的空集;后备 HashMap 实例具有指定的初始容量和默认负载因子 (0。

HashSet(Int32, Single)

构造新的空集;后备 HashMap 实例具有指定的初始容量和指定的负载因子。

HashSet(IntPtr, JniHandleOwnership)

创建 JNI 对象的托管表示形式时使用的构造函数;由运行时调用。

属性

Class

返回此 Object的运行时类。

(继承自 Object)
Handle

基础 Android 实例的句柄。

(继承自 Object)
IsEmpty

要添加

(继承自 AbstractCollection)
JniIdentityHashCode

此类实现 Set 接口,该接口由哈希表 (实际 HashMap 实例) 。

(继承自 Object)
JniPeerMembers

此类实现 Set 接口,该接口由哈希表 (实际 HashMap 实例) 。

PeerReference

此类实现 Set 接口,该接口由哈希表 (实际 HashMap 实例) 。

(继承自 Object)
ThresholdClass

此 API 支持 Mono for Android 基础结构,不应直接从代码使用。

ThresholdType

此 API 支持 Mono for Android 基础结构,不应直接从代码使用。

方法

Add(Object)

要添加

(继承自 AbstractCollection)
AddAll(ICollection)

要添加

(继承自 AbstractCollection)
Clear()

要添加

(继承自 AbstractCollection)
Clone()

返回此 HashSet 实例的浅表副本:元素本身未克隆。

Contains(Object)

要添加

(继承自 AbstractCollection)
ContainsAll(ICollection)

要添加

(继承自 AbstractCollection)
Dispose()

此类实现 Set 接口,该接口由哈希表 (实际 HashMap 实例) 。

(继承自 Object)
Dispose(Boolean)

此类实现 Set 接口,该接口由哈希表 (实际 HashMap 实例) 。

(继承自 Object)
Equals(Object)

指示其他某个对象是否“等于”此对象。

(继承自 Object)
GetHashCode()

返回对象的哈希代码值。

(继承自 Object)
Iterator()

返回此集中元素的迭代器。

JavaFinalize()

当垃圾回收确定不再引用对象时,由对象上的垃圾回收器调用。

(继承自 Object)
Notify()

唤醒正在等待此对象的监视器的单个线程。

(继承自 Object)
NotifyAll()

唤醒正在等待此对象的监视器的所有线程。

(继承自 Object)
Remove(Object)

要添加

(继承自 AbstractCollection)
RemoveAll(ICollection)

要添加

(继承自 AbstractCollection)
RetainAll(ICollection)

要添加

(继承自 AbstractCollection)
SetHandle(IntPtr, JniHandleOwnership)

设置 Handle 属性。

(继承自 Object)
Size()

返回此集中的元素数 (其基数) 。

Spliterator()

在此集中的 <元素上创建 em>late-binding</em> 和 <em>fail-fast</em>Spliterator

ToArray()

要添加

(继承自 AbstractCollection)
ToArray(Object[])

要添加

(继承自 AbstractCollection)
ToArray<T>()

此类实现 Set 接口,该接口由哈希表 (实际 HashMap 实例) 。

(继承自 Object)
ToString()

返回对象的字符串表示形式。

(继承自 Object)
UnregisterFromRuntime()

此类实现 Set 接口,该接口由哈希表 (实际 HashMap 实例) 。

(继承自 Object)
Wait()

导致当前线程等待,直到它被唤醒,通常是通过 em <通知/em> 或 <em>interrupted</em>。<>

(继承自 Object)
Wait(Int64)

导致当前线程等待,直到它被唤醒,通常是通过 em <通知/em> 或 <em>interrupted</em>,或直到经过一定数量的实时。<>

(继承自 Object)
Wait(Int64, Int32)

导致当前线程等待,直到它被唤醒,通常是通过 em <通知/em> 或 <em>interrupted</em>,或直到经过一定数量的实时。<>

(继承自 Object)

显式接口实现

IJavaPeerable.Disposed()

此类实现 Set 接口,该接口由哈希表 (实际 HashMap 实例) 。

(继承自 Object)
IJavaPeerable.DisposeUnlessReferenced()

此类实现 Set 接口,该接口由哈希表 (实际 HashMap 实例) 。

(继承自 Object)
IJavaPeerable.Finalized()

此类实现 Set 接口,该接口由哈希表 (实际 HashMap 实例) 。

(继承自 Object)
IJavaPeerable.JniManagedPeerState

此类实现 Set 接口,该接口由哈希表 (实际 HashMap 实例) 。

(继承自 Object)
IJavaPeerable.SetJniIdentityHashCode(Int32)

此类实现 Set 接口,该接口由哈希表 (实际 HashMap 实例) 。

(继承自 Object)
IJavaPeerable.SetJniManagedPeerState(JniManagedPeerStates)

此类实现 Set 接口,该接口由哈希表 (实际 HashMap 实例) 。

(继承自 Object)
IJavaPeerable.SetPeerReference(JniObjectReference)

此类实现 Set 接口,该接口由哈希表 (实际 HashMap 实例) 。

(继承自 Object)

扩展方法

JavaCast<TResult>(IJavaObject)

执行 Android 运行时检查的类型转换。

JavaCast<TResult>(IJavaObject)

此类实现 Set 接口,该接口由哈希表 (实际 HashMap 实例) 。

GetJniTypeName(IJavaPeerable)

此类实现 Set 接口,该接口由哈希表 (实际 HashMap 实例) 。

ToEnumerable(IIterable)

此类实现 Set 接口,该接口由哈希表 (实际 HashMap 实例) 。

ToEnumerable<T>(IIterable)

此类实现 Set 接口,该接口由哈希表 (实际 HashMap 实例) 。

适用于