ISet 接口

定义

不包含重复元素的集合。

[Android.Runtime.Register("java/util/Set", "", "Java.Util.ISetInvoker")]
[Java.Interop.JavaTypeParameters(new System.String[] { "E" })]
public interface ISet : IDisposable, Java.Interop.IJavaPeerable, Java.Util.ICollection
[<Android.Runtime.Register("java/util/Set", "", "Java.Util.ISetInvoker")>]
[<Java.Interop.JavaTypeParameters(new System.String[] { "E" })>]
type ISet = interface
    interface ICollection
    interface IIterable
    interface IJavaObject
    interface IDisposable
    interface IJavaPeerable
派生
属性
实现

注解

不包含重复元素的集合。 更正式的是,集不包含一对元素 e1e2 因此 e1.equals(e2),最多包含一个 null 元素。 正如其名称所暗示的那样,此接口对数学 抽象进行建模。

接口Set对所有构造函数的协定和方法的协定addequalshashCode,除了从Collection接口继承的协定之外,还规定了其他规定。 为了方便起见,此处还包括其他继承方法的声明。 (这些声明附带的规范已针对 Set 接口进行了定制,但它们不包含任何其他规定。

构造函数的其他规定并不奇怪,所有构造函数都必须创建一个不包含重复元素的集(如上所述)。

注意:如果将可变对象用作设置元素,则必须非常小心。 如果对象的值以影响 equals 比较的方式更改对象,而对象是集中的元素,则不会指定集的行为。 此禁令的一个特殊情况是,不允许一组包含自身作为元素。

某些集实现对它们可能包含的元素有限制。 例如,某些实现禁止 null 元素,有些实现对其元素的类型有限制。 尝试添加不符合资格的元素会引发未检查的异常,通常 NullPointerExceptionClassCastException。 尝试查询是否存在不符合资格的元素可能会引发异常,或者可能只返回 false;某些实现将展示前一种行为,一些实现将展示后者。 更通常,尝试对不合格元素执行操作,该元素的完成不会导致将不合格元素插入到集中可能会引发异常,也可能在实现选项中成功。 此接口的规范中将此类异常标记为“可选”。

<h2>“unmodifiable”>Unmodifiable Sets</h2>

静态Set#of(Object...) Set.ofSet#copyOf Set.copyOf工厂方法提供了一种创建不可修改集的便捷方法。 Set这些方法创建的实例具有以下特征:

<ul><li>它们是 <不可>修改<的/i>。 无法添加或删除元素。 在 Set 上调用任何可变器方法将始终引发 UnsupportedOperationException 。 但是,如果包含的元素本身是可变的,这可能会导致 Set 的行为不一致或其内容似乎发生更改。 <li>他们禁止 null 元素。 尝试使用 null 元素创建它们将导致 NullPointerException。 <如果>所有元素都是可序列化的,则 li 它们可序列化。 <li>在创建时拒绝重复的元素。 传递给静态工厂方法的重复元素会导致 IllegalArgumentException。 <li>set 元素的迭代顺序未指定,并且可能会更改。 <li>它们是基于值的。 程序员应将 #equals(Object)等于可交换的实例视为可互换的实例,不应将其用于同步,或者可能发生不可预知的行为。 例如,在将来的版本中,同步可能会失败。 调用方不应假设返回的实例的标识。 工厂可以免费创建新实例或重复使用现有实例。 <li>它们按 序列化窗体 页上的指定进行序列化。 </ul>

此接口是 Java Collections Framework 的成员。

已在 1.2 中添加。

Java文档java.util.Set

本页的某些部分是根据 创建和共享的工作进行的修改,并根据 许可证中所述的条款使用。

属性

名称 说明
Handle

获取基础 Android 对象的 JNI 值。

(继承自 IJavaObject)
IsEmpty

如果此集没有元素,则返回 true。

JniIdentityHashCode

返回包装实例的值 java.lang.System.identityHashCode()

(继承自 IJavaPeerable)
JniManagedPeerState

托管对等方的状态。

(继承自 IJavaPeerable)
JniPeerMembers

成员访问和调用支持。

(继承自 IJavaPeerable)
PeerReference

返回JniObjectReference包装的Java对象实例。

(继承自 IJavaPeerable)

方法

名称 说明
Add(Object)

如果指定的元素尚不存在(可选操作),请将指定的元素添加到此集。

AddAll(ICollection)

如果指定集合中的所有元素尚不存在(可选操作),则将其添加到此集合中。

Clear()

从此集中删除所有元素(可选操作)。

Contains(Object)

返回 true 此集是否包含指定的元素。

ContainsAll(ICollection)

返回 true 此集是否包含指定集合的所有元素。

CopyOf(ICollection)

返回包含给定集合的元素的不可修改集。

Disposed()

在释放实例时调用。

(继承自 IJavaPeerable)
DisposeUnlessReferenced()

如果没有对此实例的未完成引用,则调用 Dispose();否则不执行任何操作。

(继承自 IJavaPeerable)
Equals(Object)

将指定的对象与此集进行比较,以便相等。

Finalized()

在实例完成时调用。

(继承自 IJavaPeerable)
ForEach(IConsumer)

对每个元素执行给定操作,直到处理完所有元素 Iterable 或该操作引发异常。

(继承自 IIterable)
GetHashCode()

返回此集的哈希代码值。

Iterator()

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

Of()

返回包含零个元素的不可修改集。

Of(Object, Object, Object, Object, Object, Object, Object, Object, Object, Object)

返回包含十个元素的不可修改集。

Of(Object, Object, Object, Object, Object, Object, Object, Object, Object)

返回包含九个元素的不可修改集。

Of(Object, Object, Object, Object, Object, Object, Object, Object)

返回包含八个元素的不可修改集。

Of(Object, Object, Object, Object, Object, Object, Object)

返回包含七个元素的不可修改集。

Of(Object, Object, Object, Object, Object, Object)

返回包含六个元素的不可修改集。

Of(Object, Object, Object, Object, Object)

返回包含五个元素的不可修改集。

Of(Object, Object, Object, Object)

返回包含四个元素的不可修改集。

Of(Object, Object, Object)

返回包含三个元素的不可修改集。

Of(Object, Object)

返回包含两个元素的不可修改集。

Of(Object)

返回包含一个元素的不可修改集。

Of(Object[])

返回包含任意数量的元素的不可修改集。

Remove(Object)

如果存在指定元素(可选操作),则从此集中删除指定元素。

RemoveAll(ICollection)

从此集合中移除其包含在指定集合中的所有元素(可选操作)。

RemoveIf(IPredicate)

删除满足给定谓词的此集合的所有元素。

(继承自 ICollection)
RetainAll(ICollection)

仅保留指定集合中包含的此集中的元素(可选操作)。

SetJniIdentityHashCode(Int32)

设置由 JniIdentityHashCode. 返回的值。

(继承自 IJavaPeerable)
SetJniManagedPeerState(JniManagedPeerStates)

不包含重复元素的集合。

(继承自 IJavaPeerable)
SetPeerReference(JniObjectReference)

设置由 PeerReference. 返回的值。

(继承自 IJavaPeerable)
Size()

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

Spliterator()

Spliterator创建由此Iterable描述的元素。

(继承自 IIterable)
ToArray()

返回一个数组,其中包含此集中的所有元素。

ToArray(IIntFunction)

返回包含此集合中的所有元素的数组,该数组使用提供的 generator 函数分配返回的数组。

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

返回一个数组,其中包含此集中的所有元素;返回的数组的运行时类型是指定数组的运行时类型。

UnregisterFromRuntime()

取消注册此实例,使运行时不会从将来 Java.Interop.JniRuntime+JniValueManager.PeekValue 的调用中返回它。

(继承自 IJavaPeerable)

显式接口实现

名称 说明
IIterable.Spliterator()

在此集中创建一个 Spliterator 基于元素的元素。

扩展方法

名称 说明
GetJniTypeName(IJavaPeerable)

获取实例 self类型的 JNI 名称。

JavaAs<TResult>(IJavaPeerable)

尝试强制self键入TResult,检查强制是否在Java端有效。

JavaCast<TResult>(IJavaObject)

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

JavaCast<TResult>(IJavaObject)

不包含重复元素的集合。

ToEnumerable(IIterable)

不包含重复元素的集合。

ToEnumerable<T>(IIterable)

不包含重复元素的集合。

TryJavaCast<TResult>(IJavaPeerable, TResult)

尝试强制self键入TResult,检查强制是否在Java端有效。

适用于