Java中ArrayList和Vector之间的区别
内容
ArrayList和Vector都是Collection Framework层次结构下的类。 ArrayList和Vector均用于创建对象的动态数组,其中对象的大小可以根据需要增加。区分ArrayList和Vector有两个基本区别,即Vector属于Legacy类,该类在后来经过重新设计以支持集合类,而ArrayList是标准集合类。另一方面,另一个重要的区别是ArrayList是不同步的。向量已同步。
让我们借助下面显示的比较表来研究其他差异。
- 比较表
- 定义
- 关键差异
- 相似点
- 结论
比较表
比较基础 | 数组列表 | 向量 |
---|---|---|
基本的 | ArrayList类未同步。 | 向量类已同步。 |
旧版 | ArrayList是一个标准的Collection类。 | Vector是一个遗留类,经过重新设计以支持集合类。 |
类声明 | ArrayList类 | 类向量 |
重新分配 | 如果未指定,则ArrayList的大小增加一半。 | 如果未指定,向量将增加一倍。 |
性能 | 由于ArrayList不同步,因此其运行速度比Vector还要快。 | 由于Vector已同步,因此其运行速度比ArrayList慢。 |
枚举/迭代器 | ArrayList使用Iterator接口遍历存储在ArrayList中的对象。 | Vector使用Enumeration和Iterator接口遍历Vector中存储的对象。 |
ArrayList的定义
ArrayList属于标准集合类的列表。 ArrayList类是在 java.util 包,它扩展了 摘要清单 类,它也是一个标准的收集类,它也实现了 清单,是“集合接口”中定义的接口。在Java中,标准数组始终为固定长度。这意味着一旦创建;它不会动态增加或缩小大小。因此,您应该对所使用数组的长度有先验知识。但是,有时可能会在运行时显示所需的长度,因此,为了处理这种情况,Java引入了ArrayList。
ArrayList是用于动态创建包含对象引用的数组的类。该阵列的大小可以根据需要增加。类声明如下:
ArrayList类 在此,E指定数组将容纳的对象的类型。创建的数组具有可变的长度,当在列表中添加或删除对象时,数组的大小会增加和减小。 ArrayList不同步,这意味着一个以上的线程可以同时在阵列上操作。例如,如果一个线程正在向该数组添加对象引用,而另一个线程正在同一时间从同一数组中删除对象引用。使用ArrayList类创建动态数组: 数组列表 在上面的代码中,您可以看到;我创建了一个字符串类型的对象数组。我使用add()方法向数组S1中添加了一些对象,后来又使用remove()方法删除了一些对象。您可以观察到,如果不指定数组的初始大小,则其长度将为“ 0”。如您所见,随着添加和删除元素,数组的大小会增加和缩小。 Vector是一个旧类,经过重新设计以支持Collection Framework层次结构中的collection类。向量类也定义在 java.util 包,扩展者 摘要清单 类并由 清单 接口。 Vector类声明如下: 类向量 在此,E定义将存储在数组中的对象的类型。使用Vector类创建的数组的长度是可变的。如果未指定增量,则将其大小增加一倍。让我们了解如何使用Vector创建数组。 向量 在上面的代码中,您可以看到,在声明字符串对象数组时,我分别在Vector的构造函数中特别提到了大小和增量值。因此,您可以观察到,随着数组限制的完成,它会按声明时提供给构造函数的值递增。 最后,我说使用ArrayList比使用Vector更好,因为它执行得越来越快。向量的定义
相似之处:
结论: