Java中List和ArrayList之间的区别

作者: Laura McKinney
创建日期: 2 四月 2021
更新日期: 15 可能 2024
Anonim
Java ARRAY LIST tutorial example. Ordered Collection. Object Oriented Java #10.1
视频: Java ARRAY LIST tutorial example. Ordered Collection. Object Oriented Java #10.1

内容


List和ArrayList是Collection框架的成员。列表是序列中元素的集合,其中每个元素是一个对象,并且元素通过该位置(索引)进行访问。 ArrayList创建一个动态对象数组,该数组在需要时会增加或减小大小。 List和ArrayList之间的主要区别在于 清单 是一个接口, 数组列表 是一类。让我们借助下面显示的比较表来研究List和ArrayList之间的区别。

  1. 比较表
  2. 定义
  3. 关键差异
  4. 结论

比较表

比较基础清单数组列表
基本的列表是一个接口ArrayList是一个标准的Collection类。
句法接口列表ArrayList类
扩展/实施列表接口扩展了Collection Framework。ArrayList扩展AbstractList并实现List接口。
命名空间System.Collections.Generic。System.Collections。
工作它用于创建与其索引编号关联的元素(对象)列表。ArrayList用于创建包含对象的动态数组。

清单的定义

清单是一个 接口 这扩展了 采集 框架。列表界面描述了按顺序排列的元素的集合。列表接口由以下标准集合类实现: ArrayList,LinkedList,CopyOnWriteArrayList,向量,堆栈。列表界面具有与其索引号关联的元素。您可以通过元素在列表中的位置(索引)来访问列表中的元素。使用List接口创建的列表以从零开始的索引开头。


除了Collection框架继承的方法外,List接口还定义了一些自己的方法。 List接口添加的方法是 加(int,E)addAll(int,Collection)。这些方法通过其索引将元素添加到列表中。列表内的方法可能会引发异常,例如 UnsupportedOperationException 如果该方法无法修改列表。当列表中的一个对象与列表中的另一个对象不兼容时,则 ClassCastException 如果尝试在列表中插入null对象,则不允许在列表中使用null元素, 空指针异常 被抛出。

您可以使用以下方法从列表中获取元素 得到() 方法。您可以使用以下方法设置列表中元素的值: 组() 方法。您也可以使用以下方法从列表中获取子列表 sublist()。在子列表而不是列表上进行操作变得很方便。

ArrayList的定义

标准Collection类之一是ArrayList,它扩展了 摘要清单 类,并实现 清单 接口。 ArrayList类用于创建在需要时会增长和收缩的动态数组。使用ArrayList类创建的列表不过是对象数组。在Java中,标准数组的长度是固定的,因此,您必须事先知道数组的大小。但是,在某些情况下,您可能直到运行时才知道所需的数组长度。因此,Collection框架引入了ArrayList类来克服此问题。

ArrayList具有使用其初始容量创建数组的构造函数。尽管将元素添加到数组时,ArrayList类的对象的容量会自动增加,但是您仍然可以使用方法手动增加ArrayList对象的容量 sureCapacity()。最好先增加数组的容量,而不要稍后再分配内存。因为重新分配比一次分配内存要昂贵。

  1. List和ArrayList之间最重要的区别之一是列表是 接口 和ArrayList是一个标准的Collection .
  2. 列表界面扩展了 采集 框架,而ArrayList扩展 摘要清单 类及其实现 清单 接口。
  3. List接口的名称空间是 System.Collection.Generic 而ArrayList的命名空间是 系统集合.
  4. 列表接口创建元素的集合,这些元素按顺序存储,并通过其索引号进行标识或访问。另一方面,ArrayList创建一个对象数组,该数组可以在需要时动态增长。

结论:

ArrayList克服了标准Java中静态数组的问题,即数组一旦创建就无法增长。使用ArrayList创建数组时,将创建一个动态数组,该数组在需要时可以增大和缩小。标准Collection类ArrayList扩展了List接口。