java中的ArrayList与矢量之间的区别
时间:2020-02-23 14:34:04 来源:igfitidea点击:
"ArrayList和Vectory之间有什么区别"。
数组列表
- ArrayList是列表接口的实现。
- ArrayList不同步(所以没有线程安全)
- ArrayList使用数组作为内部数据结构实现。可以动态调整大小。
- ArrayList在其尺寸增加时增加其大小的一半。
向量
- 矢量是列表接口的实现。
- 矢量是同步的(所以螺纹安全)
- 矢量是使用数组实现的,作为内部数据结构。可以动态调整大小。
- 矢量加倍尺寸尺寸的尺寸增加。
ArrayList VS矢量:
参数 | 矢量 | ArrayList |
---|---|---|
同步 | 是 | no |
threadsafe | 是 | no |
性能 | 它比ArrayList慢 | 它比矢量更快 |
调整大小时数组内部大小的变化 | 向量的大小增加时将其内部数组的大小增加一倍 | ArrayList的大小增加时将其大小增加一半。 |
哪个更好? ArrayList或者矢量?
它实际上取决于我们的需求。
Vector比ArrayList慢,因为它的方法是同步的,所以如果我们在多线程环境中工作,则ArrayList更好。
最佳实践:
当我们初始化ArrayList或者Vector时,始终以最大容量的初始化Java程序将需要递增大小是Costlier操作。
我们可以同步ArrayList吗?
是的,ArrayList也可以通过Collections.synchronizedList(arraylist)方法进行同步
List synchronizedArrayList=Collections.synchronizedList(arraylist);