ArrayList 类
定义
重要
一些信息与预发行产品相关,相应产品在发行之前可能会进行重大修改。 对于此处提供的信息,Microsoft 不作任何明示或暗示的担保。
接口的 List
可调整大小数组实现。
[Android.Runtime.Register("java/util/ArrayList", DoNotGenerateAcw=true)]
[Java.Interop.JavaTypeParameters(new System.String[] { "E" })]
public class ArrayList : Java.Util.AbstractList, IDisposable, Java.Interop.IJavaPeerable, Java.IO.ISerializable, Java.Lang.ICloneable, Java.Util.IRandomAccess
[<Android.Runtime.Register("java/util/ArrayList", DoNotGenerateAcw=true)>]
[<Java.Interop.JavaTypeParameters(new System.String[] { "E" })>]
type ArrayList = class
inherit AbstractList
interface ISerializable
interface IJavaObject
interface IDisposable
interface IJavaPeerable
interface ICloneable
interface IList
interface ICollection
interface IIterable
interface IRandomAccess
- 继承
- 属性
- 实现
注解
接口的 List
可调整大小数组实现。 实现所有可选列表操作,并允许所有元素,包括 null
。 除了实现 List
接口之外,此类还提供用于操作数组大小的方法,这些数组在内部用于存储列表。 (此类大致等效于 Vector
,只是它未同步。)
size
、isEmpty
、、get
set
、iterator
、 和 listIterator
操作在恒定时间内运行。 操作 add
在 摊销常量时间运行,即添加 n 个元素需要 O (n) 时间。 所有其他操作在线性时间 (大致) 运行。 与实现的常数因子相比, LinkedList
常数因子较低。
每个 ArrayList
实例都有一个 容量。 容量是用于存储列表中元素的数组的大小。 它始终至少与列表大小一样大。 将元素添加到 ArrayList 后,其容量会自动增长。 除了添加元素具有恒定摊销时间成本这一事实之外,未指定增长策略的详细信息。
在使用 操作添加大量元素之前,应用程序可以增加实例的ensureCapacity
容量ArrayList
。 这可以减少增量重新分配的数量。
<strong>请注意,此实现未同步。</strong> 如果多个线程同时访问实例 ArrayList
,并且至少有一个线程在结构上修改列表, 则必须 在外部同步该列表。 (结构修改是添加或删除一个或多个元素或显式调整后备数组大小的任何操作;仅设置元素的值不是结构修改。) 这通常是通过在自然封装列表的某些对象上进行同步来实现的。
如果不存在此类对象,则应使用 Collections#synchronizedList Collections.synchronizedList
方法“包装”列表。 最好在创建时执行此操作,以防止意外的未同步访问列表:
List list = Collections.synchronizedList(new ArrayList(...));
<p id=“fail-fast”> 此类的 和 #listIterator(int) listIterator
方法返回的#iterator() iterator
迭代器为 <em>fail-fast</em>:如果在创建迭代器后的任何时间对列表进行结构修改,除通过迭代器自己的 ListIterator#remove() remove
或 ListIterator#add(Object) add
方法之外,迭代器将引发 ConcurrentModificationException
。 因此,面对并发修改时,迭代器会快速、干净地失败,而不是在未来不确定的时间出现任意、非确定性行为的风险。
请注意,无法保证迭代器的快速故障行为,因为一般来说,在存在未同步的并发修改的情况下,无法做出任何硬保证。 快速失败迭代器会尽力引发 ConcurrentModificationException
。 因此,编写依赖于此异常的程序的正确性是错误的: 迭代器的快速故障行为应仅用于检测 bug。
此类是 Java 集合框架的成员。
在 1.2 中添加。
此页面的某些部分是基于 创建和共享的工作进行的修改,并根据 署名许可中所述的条款使用。
构造函数
ArrayList() |
构造初始容量为 10 的空列表。 |
ArrayList(ICollection) |
构造包含指定集合的元素的列表,其顺序与集合的迭代器返回的顺序一样。 |
ArrayList(Int32) |
构造具有指定初始容量的空列表。 |
ArrayList(IntPtr, JniHandleOwnership) |
创建 JNI 对象的托管表示形式时使用的构造函数;由运行时调用。 |
属性
Class |
返回此 |
Handle |
基础 Android 实例的句柄。 (继承自 Object) |
IsEmpty |
要添加 (继承自 AbstractCollection) |
JniIdentityHashCode |
接口的 |
JniPeerMembers |
接口的 |
ModCount |
此列表在 结构上被修改的次数。 (继承自 AbstractList) |
PeerReference |
接口的 |
ThresholdClass |
此 API 支持 Mono for Android 基础结构,不应直接从代码中使用。 |
ThresholdType |
此 API 支持 Mono for Android 基础结构,不应直接从代码中使用。 |
方法
Add(Int32, Object) |
要添加 (继承自 AbstractList) |
Add(Object) |
要添加 (继承自 AbstractCollection) |
AddAll(ICollection) |
要添加 (继承自 AbstractCollection) |
AddAll(Int32, ICollection) |
要添加 (继承自 AbstractList) |
Clear() |
要添加 (继承自 AbstractCollection) |
Clone() |
返回此 |
Contains(Object) |
要添加 (继承自 AbstractCollection) |
ContainsAll(ICollection) |
要添加 (继承自 AbstractCollection) |
Dispose() |
接口的 |
Dispose(Boolean) |
接口的 |
EnsureCapacity(Int32) |
如有必要,增加此 |
Equals(Object) |
指示某个其他对象是否“等于”此对象。 (继承自 Object) |
ForEach(IConsumer) |
接口的 |
Get(Int32) |
返回此列表中指定位置处的元素。 |
GetHashCode() |
返回对象的哈希代码值。 (继承自 Object) |
IndexOf(Object) |
要添加 (继承自 AbstractList) |
Iterator() |
按正确的顺序返回此列表中元素的迭代器。 (继承自 AbstractList) |
JavaFinalize() |
当垃圾回收确定不再引用对象时,由垃圾回收器对对象调用。 (继承自 Object) |
LastIndexOf(Object) |
要添加 (继承自 AbstractList) |
ListIterator() |
要添加 (继承自 AbstractList) |
ListIterator(Int32) |
要添加 (继承自 AbstractList) |
Notify() |
唤醒正在等待此对象的监视器的单个线程。 (继承自 Object) |
NotifyAll() |
唤醒正在等待此对象的监视器的所有线程。 (继承自 Object) |
Remove(Int32) |
要添加 (继承自 AbstractList) |
Remove(Object) |
要添加 (继承自 AbstractCollection) |
RemoveAll(ICollection) |
要添加 (继承自 AbstractCollection) |
RemoveIf(IPredicate) |
接口的 |
RemoveRange(Int32, Int32) |
从此列表中删除索引介于 |
ReplaceAll(IUnaryOperator) |
接口的 |
RetainAll(ICollection) |
要添加 (继承自 AbstractCollection) |
Set(Int32, Object) |
要添加 (继承自 AbstractList) |
SetHandle(IntPtr, JniHandleOwnership) |
设置 Handle 属性。 (继承自 Object) |
Size() |
返回此列表中的元素数目。 |
Sort(IComparator) |
接口的 |
Spliterator() |
在此列表中的元素上创建 <>em late-binding</em> 和 <em>fail-fast</em> |
SubList(Int32, Int32) |
要添加 (继承自 AbstractList) |
ToArray() |
要添加 (继承自 AbstractCollection) |
ToArray(Object[]) |
要添加 (继承自 AbstractCollection) |
ToArray<T>() |
接口的 |
ToString() |
返回对象的字符串表示形式。 (继承自 Object) |
TrimToSize() |
将此实例的 |
UnregisterFromRuntime() |
接口的 |
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() |
接口的 |
IJavaPeerable.DisposeUnlessReferenced() |
接口的 |
IJavaPeerable.Finalized() |
接口的 |
IJavaPeerable.JniManagedPeerState |
接口的 |
IJavaPeerable.SetJniIdentityHashCode(Int32) |
接口的 |
IJavaPeerable.SetJniManagedPeerState(JniManagedPeerStates) |
接口的 |
IJavaPeerable.SetPeerReference(JniObjectReference) |
接口的 |
扩展方法
JavaCast<TResult>(IJavaObject) |
执行 Android 运行时检查的类型转换。 |
JavaCast<TResult>(IJavaObject) |
接口的 |
GetJniTypeName(IJavaPeerable) |
接口的 |
ToEnumerable(IIterable) |
接口的 |
ToEnumerable<T>(IIterable) |
接口的 |