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
[<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 ISequencedCollection
interface IRandomAccess
- 继承
- 属性
- 实现
注解
接口的 List 可调整大小数组实现。 实现所有可选列表操作,并允许所有元素,包括 null。 除了实现 List 接口之外,此类还提供用于操作数组大小的方法,这些数组在内部用于存储列表。 (此类大致等效于 Vector,只是它未同步。
size、isEmpty、getset、和iteratorlistIterator操作以常量时间运行。 该 add 操作以 摊销常量时间运行,即添加 n 个元素需要 O(n) 时间。 所有其他操作都在线性时间运行(大致讲)。 与实现的 LinkedList 常量因子相比,常量系数较低。
每个 ArrayList 实例都有一个 容量。 容量是用于在列表中存储元素的数组的大小。 它始终与列表大小一样大。 随着元素添加到 ArrayList,其容量会自动增长。 除了添加元素具有持续摊销时间成本这一事实之外,未指定增长策略的详细信息。
应用程序可以在使用ensureCapacity操作添加大量元素之前增加实例的ArrayList容量。 这可以减少增量重新分配的数量。
<强>请注意,此实现未同步。</strong> 如果多个线程同时访问一个 ArrayList 实例,并且至少有一个线程在结构上修改列表, 则必须 在外部同步它。 (结构修改是添加或删除一个或多个元素或显式调整后盾数组的大小的任何操作;仅设置元素的值不是结构修改。这通常是通过在自然封装列表的某些对象上进行同步来实现的。
如果不存在此类对象,则应使用 Collections#synchronizedList Collections.synchronizedList 该方法“包装”列表。 最好在创建时执行此操作,以防止意外的未同步访问列表:
List list = Collections.synchronizedList(new ArrayList(...));
此类#iterator() iterator#listIterator(int) listIterator返回的迭代器和方法的迭代器是 <em>fail-fast</em>:如果在创建迭代器后随时对列表进行结构修改,则迭代器将引发ConcurrentModificationException迭代器本身ListIterator#remove() remove或ListIterator#add(Object) add方法以外的任何方式。 因此,面对并发修改,迭代器会在将来不确定的时间快速、干净地失败,而不是冒着任意的不确定行为的风险。
请注意,迭代器的故障快速行为无法保证,一般来说,在出现非同步并发修改时,无法做出任何硬保证。 故障快速迭代器会尽力引发 ConcurrentModificationException 。 因此,编写依赖于此异常的程序的正确性是错误的:迭代 器的故障快速行为应仅用于检测 bug。
此类是 Java Collections Framework 的成员。
已在 1.2 中添加。
本页的某些部分是根据 创建和共享的工作进行的修改,并根据 许可证中所述的条款使用。
构造函数
| 名称 | 说明 |
|---|---|
| ArrayList() |
构造初始容量为 10 的空列表。 |
| ArrayList(ICollection) |
构造一个列表,该列表包含指定集合的元素,顺序由集合的迭代器返回。 |
| ArrayList(Int32) |
构造具有指定初始容量的空列表。 |
| ArrayList(IntPtr, JniHandleOwnership) |
创建 JNI 对象的托管表示形式时使用的构造函数;由运行时调用。 |
属性
| 名称 | 说明 |
|---|---|
| Class |
返回此 |
| First |
要添加 |
| Handle |
基础 Android 实例的句柄。 (继承自 Object) |
| IsEmpty |
要添加 (继承自 AbstractCollection) |
| JniIdentityHashCode |
接口的 |
| JniPeerMembers |
接口的 |
| Last |
要添加 |
| ModCount |
此列表在 结构上修改的次数。 (继承自 AbstractList) |
| PeerReference |
接口的 |
| ThresholdClass |
此 API 支持 Mono for Android 基础结构,不打算直接从代码使用。 |
| ThresholdType |
此 API 支持 Mono for Android 基础结构,不打算直接从代码使用。 |
方法
显式接口实现
| 名称 | 说明 |
|---|---|
| IJavaPeerable.Disposed() |
接口的 |
| IJavaPeerable.DisposeUnlessReferenced() |
接口的 |
| IJavaPeerable.Finalized() |
接口的 |
| IJavaPeerable.JniManagedPeerState |
接口的 |
| IJavaPeerable.SetJniIdentityHashCode(Int32) |
接口的 |
| IJavaPeerable.SetJniManagedPeerState(JniManagedPeerStates) |
接口的 |
| IJavaPeerable.SetPeerReference(JniObjectReference) |
接口的 |
扩展方法
| 名称 | 说明 |
|---|---|
| GetJniTypeName(IJavaPeerable) |
获取实例 |
| JavaAs<TResult>(IJavaPeerable) |
尝试强制 |
| JavaCast<TResult>(IJavaObject) |
执行 Android 运行时检查的类型转换。 |
| JavaCast<TResult>(IJavaObject) |
接口的 |
| ToEnumerable(IIterable) |
接口的 |
| ToEnumerable<T>(IIterable) |
接口的 |
| TryJavaCast<TResult>(IJavaPeerable, TResult) |
尝试强制 |