ISet 接口
定义
重要
一些信息与预发行产品相关,相应产品在发行之前可能会进行重大修改。 对于此处提供的信息,Microsoft 不作任何明示或暗示的担保。
不包含重复元素的集合。
[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
- 派生
- 属性
- 实现
注解
不包含重复元素的集合。 更正式的是,集不包含一对元素 e1 , e2 因此 e1.equals(e2),最多包含一个 null 元素。 正如其名称所暗示的那样,此接口对数学 集 抽象进行建模。
接口Set对所有构造函数的协定和方法的协定addequalshashCode,除了从Collection接口继承的协定之外,还规定了其他规定。 为了方便起见,此处还包括其他继承方法的声明。 (这些声明附带的规范已针对 Set 接口进行了定制,但它们不包含任何其他规定。
构造函数的其他规定并不奇怪,所有构造函数都必须创建一个不包含重复元素的集(如上所述)。
注意:如果将可变对象用作设置元素,则必须非常小心。 如果对象的值以影响 equals 比较的方式更改对象,而对象是集中的元素,则不会指定集的行为。 此禁令的一个特殊情况是,不允许一组包含自身作为元素。
某些集实现对它们可能包含的元素有限制。 例如,某些实现禁止 null 元素,有些实现对其元素的类型有限制。 尝试添加不符合资格的元素会引发未检查的异常,通常 NullPointerException 或 ClassCastException。 尝试查询是否存在不符合资格的元素可能会引发异常,或者可能只返回 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 中添加。
本页的某些部分是根据 创建和共享的工作进行的修改,并根据 许可证中所述的条款使用。
属性
| 名称 | 说明 |
|---|---|
| Handle |
获取基础 Android 对象的 JNI 值。 (继承自 IJavaObject) |
| IsEmpty |
如果此集没有元素,则返回 true。 |
| JniIdentityHashCode |
返回包装实例的值 |
| JniManagedPeerState |
托管对等方的状态。 (继承自 IJavaPeerable) |
| JniPeerMembers |
成员访问和调用支持。 (继承自 IJavaPeerable) |
| PeerReference |
返回JniObjectReference包装的Java对象实例。 (继承自 IJavaPeerable) |
方法
显式接口实现
| 名称 | 说明 |
|---|---|
| IIterable.Spliterator() |
在此集中创建一个 |
扩展方法
| 名称 | 说明 |
|---|---|
| GetJniTypeName(IJavaPeerable) |
获取实例 |
| JavaAs<TResult>(IJavaPeerable) |
尝试强制 |
| JavaCast<TResult>(IJavaObject) |
执行 Android 运行时检查的类型转换。 |
| JavaCast<TResult>(IJavaObject) |
不包含重复元素的集合。 |
| ToEnumerable(IIterable) |
不包含重复元素的集合。 |
| ToEnumerable<T>(IIterable) |
不包含重复元素的集合。 |
| TryJavaCast<TResult>(IJavaPeerable, TResult) |
尝试强制 |