Share via


ArrayList 类

定义

接口的 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,只是它未同步。)

sizeisEmpty、、getsetiterator、 和 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() removeListIterator#add(Object) add 方法之外,迭代器将引发 ConcurrentModificationException。 因此,面对并发修改时,迭代器会快速、干净地失败,而不是在未来不确定的时间出现任意、非确定性行为的风险。

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

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

在 1.2 中添加。

java.util.ArrayListJava 文档。

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

构造函数

ArrayList()

构造初始容量为 10 的空列表。

ArrayList(ICollection)

构造包含指定集合的元素的列表,其顺序与集合的迭代器返回的顺序一样。

ArrayList(Int32)

构造具有指定初始容量的空列表。

ArrayList(IntPtr, JniHandleOwnership)

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

属性

Class

返回此 Object的运行时类。

(继承自 Object)
Handle

基础 Android 实例的句柄。

(继承自 Object)
IsEmpty

要添加

(继承自 AbstractCollection)
JniIdentityHashCode

接口的 List 可调整大小数组实现。

(继承自 Object)
JniPeerMembers

接口的 List 可调整大小数组实现。

ModCount

此列表在 结构上被修改的次数。

(继承自 AbstractList)
PeerReference

接口的 List 可调整大小数组实现。

(继承自 Object)
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()

返回此 ArrayList 实例的浅表副本。

Contains(Object)

要添加

(继承自 AbstractCollection)
ContainsAll(ICollection)

要添加

(继承自 AbstractCollection)
Dispose()

接口的 List 可调整大小数组实现。

(继承自 Object)
Dispose(Boolean)

接口的 List 可调整大小数组实现。

(继承自 Object)
EnsureCapacity(Int32)

如有必要,增加此 ArrayList 实例的容量,以确保它至少可以容纳由 minimum capacity 参数指定的元素数。

Equals(Object)

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

(继承自 Object)
ForEach(IConsumer)

接口的 List 可调整大小数组实现。

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)

接口的 List 可调整大小数组实现。

RemoveRange(Int32, Int32)

从此列表中删除索引介于 fromIndex、非独占和 toIndex之间的所有元素。

(继承自 AbstractList)
ReplaceAll(IUnaryOperator)

接口的 List 可调整大小数组实现。

RetainAll(ICollection)

要添加

(继承自 AbstractCollection)
Set(Int32, Object)

要添加

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

设置 Handle 属性。

(继承自 Object)
Size()

返回此列表中的元素数目。

Sort(IComparator)

接口的 List 可调整大小数组实现。

Spliterator()

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

SubList(Int32, Int32)

要添加

(继承自 AbstractList)
ToArray()

要添加

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

要添加

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

接口的 List 可调整大小数组实现。

(继承自 Object)
ToString()

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

(继承自 Object)
TrimToSize()

将此实例的 ArrayList 容量剪裁为列表的当前大小。

UnregisterFromRuntime()

接口的 List 可调整大小数组实现。

(继承自 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()

接口的 List 可调整大小数组实现。

(继承自 Object)
IJavaPeerable.DisposeUnlessReferenced()

接口的 List 可调整大小数组实现。

(继承自 Object)
IJavaPeerable.Finalized()

接口的 List 可调整大小数组实现。

(继承自 Object)
IJavaPeerable.JniManagedPeerState

接口的 List 可调整大小数组实现。

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

接口的 List 可调整大小数组实现。

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

接口的 List 可调整大小数组实现。

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

接口的 List 可调整大小数组实现。

(继承自 Object)

扩展方法

JavaCast<TResult>(IJavaObject)

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

JavaCast<TResult>(IJavaObject)

接口的 List 可调整大小数组实现。

GetJniTypeName(IJavaPeerable)

接口的 List 可调整大小数组实现。

ToEnumerable(IIterable)

接口的 List 可调整大小数组实现。

ToEnumerable<T>(IIterable)

接口的 List 可调整大小数组实现。

适用于