IList 接口
定义
重要
一些信息与预发行产品相关,相应产品在发行之前可能会进行重大修改。 对于此处提供的信息,Microsoft 不作任何明示或暗示的担保。
有序集合,用户可精确控制插入每个元素列表中的位置。
[Android.Runtime.Register("java/util/List", "", "Java.Util.IListInvoker")]
[Java.Interop.JavaTypeParameters(new System.String[] { "E" })]
public interface IList : IDisposable, Java.Interop.IJavaPeerable, Java.Util.ICollection
[Android.Runtime.Register("java/util/List", "", "Java.Util.IListInvoker")]
[Java.Interop.JavaTypeParameters(new System.String[] { "E" })]
public interface IList : IDisposable, Java.Interop.IJavaPeerable, Java.Util.ISequencedCollection
[<Android.Runtime.Register("java/util/List", "", "Java.Util.IListInvoker")>]
[<Java.Interop.JavaTypeParameters(new System.String[] { "E" })>]
type IList = interface
interface ICollection
interface IIterable
interface IJavaObject
interface IDisposable
interface IJavaPeerable
[<Android.Runtime.Register("java/util/List", "", "Java.Util.IListInvoker")>]
[<Java.Interop.JavaTypeParameters(new System.String[] { "E" })>]
type IList = interface
interface ICollection
interface IIterable
interface IJavaObject
interface IDisposable
interface IJavaPeerable
interface ISequencedCollection
- 派生
- 属性
- 实现
注解
有序集合,用户可精确控制插入每个元素列表中的位置。 用户可以按元素的整数索引(在列表中的位置)访问元素,并搜索列表中的元素。
与集不同,列表通常允许重复元素。 更正式的是,列表通常允许对元素 e1 , e2 因此 e1.equals(e2),如果允许 null 元素,它们通常允许多个 null 元素。 用户尝试插入重复项时,可能希望实现禁止重复项的列表并不不可思议,但我们希望这种用法很少见。
接口List对接口、、removeequals和hashCode方法的协定iteratoradd规定了其他规定(超出接口中指定的Collection规定)。 为了方便起见,此处还包括其他继承方法的声明。
该 List 接口提供四种方法用于对列表元素进行位置(索引)访问。 列表(如Java数组)基于零。 请注意,这些操作可能与某些实现的索引值成正比( LinkedList 例如类)。 因此,如果调用方不知道实现,则循环访问列表中的元素通常最好通过它进行索引。
除了接口提供的正常操作Iterator外,该List接口还提供一个名为 a ListIterator的特殊迭代器,该迭代器允许元素插入和替换,以及双向访问。 提供了一种方法来获取列表迭代器,该迭代器从列表中的指定位置开始。
该 List 接口提供两种方法来搜索指定的对象。 从性能的角度来看,应谨慎使用这些方法。 在许多实现中,它们将执行昂贵的线性搜索。
该 List 接口提供了两种方法,用于在列表中的任意点高效插入和删除多个元素。
注意:虽然允许列表包含自己作为元素,但建议格外小心: equals 此类列表上不再明确定义方法和 hashCode 方法。
某些列表实现对它们可能包含的元素有限制。 例如,某些实现禁止 null 元素,有些实现对其元素的类型有限制。 尝试添加不符合资格的元素会引发未检查的异常,通常 NullPointerException 或 ClassCastException。 尝试查询是否存在不符合资格的元素可能会引发异常,或者可能只返回 false;某些实现将展示前一种行为,一些实现将展示后者。 更通常,尝试对不合格元素执行操作,该元素的完成不会导致不合格元素插入列表中可能会引发异常,或者在实现选项中成功。 此接口的规范中将此类异常标记为“可选”。
<h2>“unmodifiable”>Unmodifiable Lists</h2>
静态List#of(Object...) List.ofList#copyOf List.copyOf工厂方法提供了一种创建不可修改列表的便捷方法。
List这些方法创建的实例具有以下特征:
<ul><li>它们是 <不可>修改<的/i>。 无法添加、删除或替换元素。 在列表中调用任何可变器方法将始终引发 UnsupportedOperationException 。 但是,如果包含的元素本身是可变的,这可能会导致列表的内容似乎发生变化。
<li>他们禁止 null 元素。 尝试使用 null 元素创建它们将导致 NullPointerException。
<如果>所有元素都是可序列化的,则 li 它们可序列化。
<li>列表中的元素顺序与提供的参数的顺序或提供的数组中的元素的顺序相同。
<li>列表及其 #subList(int, int) subList 视图实现 RandomAccess 接口。
<li>它们是基于值的。 程序员应将 #equals(Object)等于可交换的实例视为可互换的实例,不应将其用于同步,或者可能发生不可预知的行为。 例如,在将来的版本中,同步可能会失败。 调用方不应假设返回的实例的标识。 工厂可以免费创建新实例或重复使用现有实例。
<li>它们按 序列化窗体 页上的指定进行序列化。
</ul>
已在 1.2 中添加。
本页的某些部分是根据 创建和共享的工作进行的修改,并根据 许可证中所述的条款使用。
属性
| 名称 | 说明 |
|---|---|
| First |
要添加 |
| Handle |
获取基础 Android 对象的 JNI 值。 (继承自 IJavaObject) |
| IsEmpty |
返回这 |
| JniIdentityHashCode |
返回包装实例的值 |
| JniManagedPeerState |
托管对等方的状态。 (继承自 IJavaPeerable) |
| JniPeerMembers |
成员访问和调用支持。 (继承自 IJavaPeerable) |
| Last |
要添加 |
| PeerReference |
返回JniObjectReference包装的Java对象实例。 (继承自 IJavaPeerable) |
方法
| 名称 | 说明 |
|---|---|
| Add(Int32, Object) |
在此列表中指定位置插入指定元素(可选操作)。 |
| Add(Object) |
将指定的元素追加到此列表的末尾(可选操作)。 |
| AddAll(ICollection) |
按照指定集合迭代器(可选操作)返回的顺序,将指定集合中的所有元素追加到此列表的末尾。 |
| AddAll(Int32, ICollection) |
将指定集合中的所有元素插入到指定位置(可选操作)的此列表中。 |
| AddFirst(Object) |
添加元素作为此集合的第一个元素(可选操作)。 (继承自 ISequencedCollection) |
| AddLast(Object) |
添加元素作为此集合的最后一个元素(可选操作)。 (继承自 ISequencedCollection) |
| Clear() |
从此列表中删除所有元素(可选操作)。 |
| Contains(Object) |
返回 |
| ContainsAll(ICollection) |
如果 |
| CopyOf(ICollection) |
返回一个不可修改的列表,其中包含给定集合的元素,其迭代顺序。 |
| Disposed() |
在释放实例时调用。 (继承自 IJavaPeerable) |
| DisposeUnlessReferenced() |
如果没有对此实例的未完成引用,则调用 |
| Equals(Object) |
将指定的对象与此列表进行比较,以便相等。 |
| Finalized() |
在实例完成时调用。 (继承自 IJavaPeerable) |
| ForEach(IConsumer) |
对每个元素执行给定操作,直到处理完所有元素 |
| Get(Int32) |
返回此列表中指定位置处的元素。 |
| GetFirst() |
获取此集合的第一个元素。 (继承自 ISequencedCollection) |
| GetHashCode() |
返回此列表的哈希代码值。 |
| GetLast() |
获取此集合的最后一个元素。 (继承自 ISequencedCollection) |
| IndexOf(Object) |
返回此列表中指定元素的第一个匹配项的索引,如果此列表不包含该元素,则返回 -1。 |
| Iterator() |
按正确的顺序返回此列表中的元素的迭代器。 |
| LastIndexOf(Object) |
返回此列表中指定元素的最后一个匹配项的索引;如果此列表不包含该元素,则返回 -1。 |
| ListIterator() |
返回此列表中元素的列表迭代器(按正确的顺序)。 |
| ListIterator(Int32) |
返回一个列表迭代器,该列表的元素(按正确的顺序),从列表中的指定位置开始。 |
| Of() |
返回包含零个元素的不可修改列表。 |
| Of(Object, Object, Object, Object, Object, Object, Object, Object, Object, Object) |
返回包含 10 个元素的不可修改列表。 |
| 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(Int32) |
删除此列表中指定位置处的元素(可选操作)。 |
| Remove(Object) |
从此列表中删除指定元素的第一个匹配项(如果存在)(可选操作)。 |
| RemoveAll(ICollection) |
从此列表中删除指定集合中包含的所有元素(可选操作)。 |
| RemoveFirst() |
删除并返回此集合的第一个元素(可选操作)。 (继承自 ISequencedCollection) |
| RemoveIf(IPredicate) |
删除满足给定谓词的此集合的所有元素。 (继承自 ICollection) |
| RemoveLast() |
删除并返回此集合的最后一个元素(可选操作)。 (继承自 ISequencedCollection) |
| ReplaceAll(IUnaryOperator) |
将此列表的每个元素替换为将运算符应用于该元素的结果。 |
| RetainAll(ICollection) |
仅保留指定集合中包含的此列表中的元素(可选操作)。 |
| Reversed() |
返回此集合的反向排序视图。 (继承自 ISequencedCollection) |
| Set(Int32, Object) |
将此列表中位于指定位置的元素替换为指定元素(可选操作)。 |
| SetJniIdentityHashCode(Int32) |
设置由 |
| SetJniManagedPeerState(JniManagedPeerStates) |
有序集合,用户可精确控制插入每个元素列表中的位置。 (继承自 IJavaPeerable) |
| SetPeerReference(JniObjectReference) |
设置由 |
| Size() |
返回此列表中的元素数目。 |
| Sort(IComparator) |
根据指定 |
| Spliterator() |
|
| SubList(Int32, Int32) |
返回指定、非独占和 |
| ToArray() |
返回一个数组,该数组包含此列表中的所有元素(从第一个到最后一个元素)。 |
| ToArray(IIntFunction) |
返回包含此集合中的所有元素的数组,该数组使用提供的 |
| ToArray(Object[]) |
返回一个数组,该数组包含此列表中的所有元素(从第一个到最后一个元素):返回的数组的运行时类型是指定数组的运行时类型。 |
| UnregisterFromRuntime() |
取消注册此实例,使运行时不会从将来 Java.Interop.JniRuntime+JniValueManager.PeekValue 的调用中返回它。 (继承自 IJavaPeerable) |
显式接口实现
| 名称 | 说明 |
|---|---|
| IIterable.Spliterator() |
在此列表中创建一个 |
| ISequencedCollection.AddFirst(Object) |
要添加 |
| ISequencedCollection.AddLast(Object) |
要添加 |
| ISequencedCollection.RemoveFirst() |
要添加 |
| ISequencedCollection.RemoveLast() |
要添加 |
| ISequencedCollection.Reversed() |
有序集合,用户可精确控制插入每个元素列表中的位置。 |
扩展方法
| 名称 | 说明 |
|---|---|
| GetJniTypeName(IJavaPeerable) |
获取实例 |
| JavaAs<TResult>(IJavaPeerable) |
尝试强制 |
| JavaCast<TResult>(IJavaObject) |
执行 Android 运行时检查的类型转换。 |
| JavaCast<TResult>(IJavaObject) |
有序集合,用户可精确控制插入每个元素列表中的位置。 |
| ToEnumerable(IIterable) |
有序集合,用户可精确控制插入每个元素列表中的位置。 |
| ToEnumerable<T>(IIterable) |
有序集合,用户可精确控制插入每个元素列表中的位置。 |
| TryJavaCast<TResult>(IJavaPeerable, TResult) |
尝试强制 |