展开全部

java.util

类 ArrayList

java.lang.Object

java.util.AbstractCollection

java.util.AbstractList

java.util.ArrayList

所有已实现的接口:

Serializable, Cloneable, Iterable, Collection, List, RandomAccess

直接已32313133353236313431303231363533e58685e5aeb931333236366338知子类:

AttributeList, RoleList, RoleUnresolvedList

--------------------------------------------------------------------------------

public class ArrayListextends AbstractListimplements List, RandomAccess, Cloneable, SerializableList 接口的大小可变数组的实现。实现了所有可选列表操作,并允许包括 null 在内的所有元素。除了实现 List 接口外,此类还提供一些方法来操作内部用来存储列表的数组的大小。(此类大致上等同于 Vector 类,除了此类是不同步的。)

size、isEmpty、get、set、iterator 和 listIterator 操作都以固定时间运行。add 操作以分摊的固定时间 运行,也就是说,添加 n 个元素需要 O(n) 时间。其他所有操作都以线性时间运行(大体上讲)。与用于 LinkedList 实现的常数因子相比,此实现的常数因子较低。

每个 ArrayList 实例都有一个容量。该容量是指用来存储列表元素的数组的大小。它总是至少等于列表的大小。随着向 ArrayList 中不断添加元素,其容量也自动增长。并未指定增长策略的细节,因为这不只是添加元素会带来分摊固定时间开销那样简单。

在添加大量元素前,应用程序可以使用 ensureCapacity 操作来增加 ArrayList 实例的容量。这可以减少递增式再分配的数量。

注意,此实现不是同步的。如果多个线程同时访问一个 ArrayList 实例,而其中至少一个线程从结构上修改了列表,那么它必须 保持外部同步。(结构上的修改是指任何添加或删除一个或多个元素的操作,或者显式调整底层数组的大小;仅仅设置元素的值不是结构上的修改。)这一般通过对自然封装该列表的对象进行同步操作来完成。如果不存在这样的对象,则应该使用 Collections.synchronizedList 方法将该列表“包装”起来。这最好在创建时完成,以防止意外对列表进行不同步的访问:

List list = Collections.synchronizedList(new ArrayList(...)); 此类的 iterator 和 listIterator 方法返回的迭代器是快速失败的:在创建迭代器之后,除非通过迭代器自身的 remove 或 add 方法从结构上对列表进行修改,否则在任何时间以任何方式对列表进行修改,迭代器都会抛出 ConcurrentModificationException。因此,面对并发的修改,迭代器很快就会完全失败,而不是冒着在将来某个不确定时间发生任意不确定行为的风险。

注意,迭代器的快速失败行为无法得到保证,因为一般来说,不可能对是否出现不同步并发修改做出任何硬性保证。快速失败迭代器会尽最大努力抛出 ConcurrentModificationException。因此,为提高这类迭代器的正确性而编写一个依赖于此异常的程序是错误的做法:迭代器的快速失败行为应该仅用于检测 bug。

此类是 Java Collections Framework 的成员。

构造方法详细信息

ArrayList

public ArrayList(int initialCapacity)构造一个具有指定初始容量的空列表。

参数:

initialCapacity - 列表的初始容量

抛出:

IllegalArgumentException - 如果指定的初始容量为负

--------------------------------------------------------------------------------

ArrayList

public ArrayList()构造一个初始容量为 10 的空列表。

--------------------------------------------------------------------------------

ArrayList

public ArrayList(Collection extends E> c)构造一个包含指定 collection 的元素的列表,这些元素是按照该 collection 的迭代器返回它们的顺序排列的。

参数:

c - 其元素将放置在此列表中的 collection

抛出:

NullPointerException - 如果指定的 collection 为 null

方法详细信息

trimToSize

public void trimToSize()将此 ArrayList 实例的容量调整为列表的当前大小。应用程序可以使用此操作来最小化 ArrayList 实例的存储量。

--------------------------------------------------------------------------------

ensureCapacity

public void ensureCapacity(int minCapacity)如有必要,增加此 ArrayList 实例的容量,以确保它至少能够容纳最小容量参数所指定的元素数。

参数:

minCapacity - 所需的最小容量

--------------------------------------------------------------------------------

size

public int size()返回此列表中的元素数。

指定者:

接口 Collection 中的 size

指定者:

接口 List 中的 size

指定者:

类 AbstractCollection 中的 size

返回:

此列表中的元素数

--------------------------------------------------------------------------------

isEmpty

public boolean isEmpty()如果此列表中没有元素,则返回 true

指定者:

接口 Collection 中的 isEmpty

指定者:

接口 List 中的 isEmpty

覆盖:

类 AbstractCollection 中的 isEmpty

返回:

如果此列表中没有元素,则返回 true

--------------------------------------------------------------------------------

contains

public boolean contains(Object o)如果此列表中包含指定的元素,则返回 true。更确切地讲,当且仅当此列表包含至少一个满足 (o==null ? e==null : o.equals(e)) 的元素 e 时,则返回 true。

指定者:

接口 Collection 中的 contains

指定者:

接口 List 中的 contains

覆盖:

类 AbstractCollection 中的 contains

参数:

o - 测试此列表中是否存在的元素

返回:

如果此列表包含特定的元素,则返回 true

--------------------------------------------------------------------------------

indexOf

public int indexOf(Object o)返回此列表中首次出现的指定元素的索引,或如果此列表不包含元素,则返回 -1。更确切地讲,返回满足 (o==null ? get(i)==null : o.equals(get(i))) 的最低索引 i ,如果不存在此类索引,则返回 -1。

指定者:

接口 List 中的 indexOf

覆盖:

类 AbstractList 中的 indexOf

参数:

o - 要搜索的元素

返回:

此列表中第一次出现的指定元素的索引,如果列表不包含该元素,则返回 -1

--------------------------------------------------------------------------------

lastIndexOf

public int lastIndexOf(Object o)返回此列表中最后一次出现的指定元素的索引,或如果此列表不包含索引,则返回 -1。更确切地讲,返回满足 (o==null ? get(i)==null : o.equals(get(i))) 的最高索引 i,如果不存在此类索引,则返回 -1。

指定者:

接口 List 中的 lastIndexOf

覆盖:

类 AbstractList 中的 lastIndexOf

参数:

o - 要搜索的元素

返回:

列表中最后出现的指定元素的索引;如果列表不包含此元素,则返回 -1

--------------------------------------------------------------------------------

clone

public Object clone()返回此 ArrayList 实例的浅表副本。(不复制这些元素本身。)

覆盖:

类 Object 中的 clone

返回:

此 ArrayList 实例的一个副本

另请参见:

Cloneable

--------------------------------------------------------------------------------

toArray

public Object[] toArray()按适当顺序(从第一个到最后一个元素)返回包含此列表中所有元素的数组。

由于此列表不维护对返回数组的任何引用,,因而它将是“安全的”。(换句话说,此方法必须分配一个新的数组)。因此,调用者可以自由地修改返回的数组。

此方法担当基于数组的 API 和基于 collection 的 API 之间的桥梁。

指定者:

接口 Collection 中的 toArray

指定者:

接口 List 中的 toArray

覆盖:

类 AbstractCollection 中的 toArray

返回:

包含此列表中所有元素的数组(按适当顺序)

另请参见:

Arrays.asList(Object[])

--------------------------------------------------------------------------------

toArray

public T[] toArray(T[] a)按适当顺序(从第一个到最后一个元素)返回包含此列表中所有元素的数组;返回数组的运行时类型是指定数组的运行时类型。如果指定的数组能容纳列表,则将该列表返回此处。否则,将分配一个具有指定数组的运行时类型和此列表大小的新数组。

如果指定的数组能容纳队列,并有剩余的空间(即数组的元素比队列多),那么会将数组中紧接 collection 尾部的元素设置为 null。(仅 在调用者知道列表中不包含任何 null 元素时才能用此方法确定列表长度)。

指定者:

接口 Collection 中的 toArray

指定者:

接口 List 中的 toArray

覆盖:

类 AbstractCollection 中的 toArray

参数:

a - 要在其中存储列表元素的数组(如果它足够大);否则,为此分配一个具有相同运行时类型的新数组。

返回:

包含列表元素的数组

抛出:

ArrayStoreException - 如果指定数组的运行时类型不是此列表每个元素的运行时类型的超类型

NullPointerException - 如果指定数组为 null

--------------------------------------------------------------------------------

get

public E get(int index)返回此列表中指定位置上的元素。

指定者:

接口 List 中的 get

指定者:

类 AbstractList 中的 get

参数:

index - 要返回元素的索引

返回:

此列表中指定位置上的元素

抛出:

IndexOutOfBoundsException - 如果索引超出范围 (index < 0 || index >= size())

--------------------------------------------------------------------------------

set

public E set(int index,

E element)用指定的元素替代此列表中指定位置上的元素。

指定者:

接口 List 中的 set

覆盖:

类 AbstractList 中的 set

参数:

index - 要替代的元素的索引

element - 存储在指定位置上的元素

返回:

以前位于该指定位置上的元素

抛出:

IndexOutOfBoundsException - 如果索引超出范围 (index < 0 || index >= size())

--------------------------------------------------------------------------------

add

public boolean add(E e)将指定的元素添加到此列表的尾部。

指定者:

接口 Collection 中的 add

指定者:

接口 List 中的 add

覆盖:

类 AbstractList 中的 add

参数:

e - 要添加到此列表中的元素

返回:

true(按照 Collection.add(E) 的指定)

--------------------------------------------------------------------------------

add

public void add(int index,

E element)将指定的元素插入此列表中的指定位置。向右移动当前位于该位置的元素(如果有)以及所有后续元素(将其索引加 1)。

指定者:

接口 List 中的 add

覆盖:

类 AbstractList 中的 add

参数:

index - 指定元素所插入位置的索引

element - 要插入的元素

抛出:

IndexOutOfBoundsException - 如果索引超出范围 (index < 0 || index > size())

--------------------------------------------------------------------------------

remove

public E remove(int index)移除此列表中指定位置上的元素。向左移动所有后续元素(将其索引减 1)。

指定者:

接口 List 中的 remove

覆盖:

类 AbstractList 中的 remove

参数:

index - 要移除的元素的索引

返回:

从列表中移除的元素

抛出:

IndexOutOfBoundsException - 如果索引超出范围 (index < 0 || index >= size())

--------------------------------------------------------------------------------

remove

public boolean remove(Object o)移除此列表中首次出现的指定元素(如果存在)。如果列表不包含此元素,则列表不做改动。更确切地讲,移除满足 (o==null ? get(i)==null : o.equals(get(i))) 的最低索引的元素(如果存在此类元素)。如果列表中包含指定的元素,则返回 true(或者等同于这种情况:如果列表由于调用而发生更改,则返回 true)。

指定者:

接口 Collection 中的 remove

指定者:

接口 List 中的 remove

覆盖:

类 AbstractCollection 中的 remove

参数:

o - 要从此列表中移除的元素(如果存在)

返回:

如果此列表包含指定的元素,则返回 true

--------------------------------------------------------------------------------

clear

public void clear()移除此列表中的所有元素。此调用返回后,列表将为空。

指定者:

接口 Collection 中的 clear

指定者:

接口 List 中的 clear

覆盖:

类 AbstractList 中的 clear

--------------------------------------------------------------------------------

addAll

public boolean addAll(Collection extends E> c)按照指定 collection 的迭代器所返回的元素顺序,将该 collection 中的所有元素添加到此列表的尾部。如果正在进行此操作时修改指定的 collection ,那么此操作的行为是不确定的。(这意味着如果指定的 collection 是此列表且此列表是非空的,那么此调用的行为是不确定的)。

指定者:

接口 Collection 中的 addAll

指定者:

接口 List 中的 addAll

覆盖:

类 AbstractCollection 中的 addAll

参数:

c - 包含要添加到此列表中的元素的 collection

返回:

如果此列表由于调用而发生更改,则返回 true

抛出:

NullPointerException - 如果指定的 collection 为 null

另请参见:

AbstractCollection.add(Object)

--------------------------------------------------------------------------------

addAll

public boolean addAll(int index,

Collection extends E> c)从指定的位置开始,将指定 collection 中的所有元素插入到此列表中。向右移动当前位于该位置的元素(如果有)以及所有后续元素(增加其索引)。新元素将按照指定 collection 的迭代器所返回的元素顺序出现在列表中。

指定者:

接口 List 中的 addAll

覆盖:

类 AbstractList 中的 addAll

参数:

index - 插入指定 collection 中的首个元素的位置索引

c - 包含要添加到此列表中元素的 collection

返回:

如果此列表由于调用而发生更改,则返回 true

抛出:

IndexOutOfBoundsException - 如果索引超出范围 (index < 0 || index > size())

NullPointerException - 如果指定的 collection 为 null

--------------------------------------------------------------------------------

removeRange

protected void removeRange(int fromIndex,

int toIndex)移除列表中索引在 fromIndex(包括)和 toIndex(不包括)之间的所有元素。向左移动所有后续元素(减小其索引)。此调用将列表缩短了 (toIndex - fromIndex) 个元素。(如果 toIndex==fromIndex,则此操作无效。)

覆盖:

类 AbstractList 中的 removeRange

参数:

fromIndex - 要移除的首个元素的索引

toIndex - 最后一个要移除的元素后面那个元素的索引

抛出:

IndexOutOfBoundsException - 如果 fromIndex 或 toIndex 超出范围 (fromIndex < 0 || fromIndex >= size() || toIndex > size() || toIndex < fromIndex)

---------------------------------------------------------------------

from java API

已赞过

已踩过<

你对这个回答的评价是?

评论

收起

java array arraylist_java 基础 array arraylist..越详细越好。相关推荐

  1. matlab各个指令的含义,[MATLAB基础] 求解这段指令的意思,越详细越好,谢谢啦

    求解这段指令的意思,越详细越好,谢谢啦 function [Kp,T2]=KPCA(ax,ay) [Nx]=size(ax); mean_X =mean(ax); axb=ax; std_X=std( ...

  2. 计算机课高数怎么过,我是大一新鸟,学软件,想向大虾们讨教几手,我有高数,英语,法律.计算机,4门课,我该怎么学!介绍越详细越好,...

    我是大一新鸟,学软件,想向大虾们讨教几手,我有高数,英语,法律.计算机,4门课,我该怎么学!介绍越详细越好, 來源:互聯網  2009-07-30 08:58:23  評論 分類: 煩惱 >&g ...

  3. java如何arraylist_Java如何使用ArrayList类?

    在此示例中,我们将学习如何使用java.util.ArrayList该类.AnArrayList是Java Collection Framework的一部分.通过使用此类,我们可以创建一个动态大小的数 ...

  4. java class arraylist_Java:如何用arraylist添加并调用CLASS

    展开全部 第一个问题:ArrayList声明了e5a48de588b63231313335323631343130323136353331333337393535这里数组中存放的是Doctor对象,所 ...

  5. 宝塔建站 mysql在哪_宝塔面板建站教程,越详细越好纯小白! - 搜外问答

    我的网站就是用宝塔添加的网站: 宝塔面板创建站点添加网站的详细教程. 宝塔 Linux 面板创建站点添加网站常规方法 1.登录宝塔 linux 面板 >> 网站 >> 添加站点 ...

  6. 用计算机进行有理数除法时,有理数的乘除法怎么算?,什么是有理数的乘除法。越详细越好。...

    一.教学目标 知识与技能: ①使学生在了解乘法的基础上,掌握有理数乘法法则并初步掌握有理数乘法法则的合理性. ②会进行有理数乘法运算. ③了解有理数的倒数定义,会求一个数的倒数. 过程与方法: ①经历 ...

  7. 主数据管理系统mdm哪个产品好,为什么,越详细越好?

    当企业对主数据管理不善时,会出现数据冗余.数据不一致.业务低效.数据孤岛等问题,多个系统之间的数据难以协调,难以发挥数据的价值.这时我们就需要对企业主数据进行管理. 亿信华辰前不久在"202 ...

  8. 美团面试官:生成订单后一段时间不支付订单会自动关闭的功能该如何实现?越详细越好~

    # 业务场景 我们以订单功能为例说明下:生成订单后一段时间不支付订单会自动关闭.最简单的想法是设置定时任务轮询,但是每个订单的创建时间不一样,定时任务的规则无法设定,如果将定时任务执行的间隔设置的过短 ...

  9. c语言编程和PS,求高人剖析下这道C语言编程题(PS:越详细越好)

    满意答案 红太阳7107 2013.06.04 采纳率:56%    等级:9 已帮助:315人 求24点的经典程序,如下: #include #include int enumerate(int a ...

最新文章

  1. 用python解“BCD解密”问题
  2. Nginx开启gzip压缩解决react打包文件过大
  3. HBase timestamp(version)
  4. 自定义Xcode代码模板:Code Snippet
  5. java gzip 多个文件_Java Zip多文件压缩和 GZIP压缩
  6. php程序怎么上传服务器,php本地文件上传到远程服务器
  7. Python高级——多继承问题(super与mro)
  8. Linux学习总结(79)—— Shell 编程规范
  9. iPhone开发教程 UI基础课程(58课时)
  10. 生成26个大小写字母和0-9的六位随机验证码(python3.X)
  11. 北邮 复习 软件工程_【真题回忆】2018北邮软件工程专业课真题回忆版
  12. 算法之二叉树各种遍历
  13. HTTP协议和TCP/IP协议与Socket之间的区别
  14. 利用go破解带密码的rar压缩文件
  15. 这10部功夫片曾拿到金像奖最佳动作设计奖,李连杰主演的就有4部
  16. Android设置应用图标
  17. html语音合成text2audio讯飞,python讯飞语音合成
  18. 给你的亲人一个科技感满满的生日祝福吧
  19. 期货居间人一年能赚多少?期货居间人开户手续费有什么优势?
  20. 开题报告的国内外研究现状怎么写呢?

热门文章

  1. pandas使用insert函数将dataframe特定数据列移动到第一列实战:Move a Column to First Position
  2. python包NiBabel对医学影像文件格式进行读写:python包NiBabel简介集示例
  3. R语言ggplot2可视化为组合图添加综合图例实战:使用ggpubr包ggarrange函数实现综合图例、使用patchwork包实现综合图例
  4. R语言单向多元方差分析MANOVA(one-way MANOVA)实战:multivariate analysis of variance
  5. R语言指数分布(exponential distribution)函数(dexp, pexp, qexp rexp)实战
  6. 为什么权重初始化要非对称?为什么权重初始化不能全为0?为什么初始化值不能太大或者太小?介绍下He初始化以及Xavier初始化?
  7. 实体链接(Entity Linking)、依存句法分析、成分句法树、词袋模型、文本向量空间模型(TF-IDF)、
  8. Python踩坑指南(第三季)
  9. android studio 学习入门篇
  10. JAVA基础4-循环语句