Vector和List的区别

上星期。
我朋友问我。
向量和列表有什么区别?
列表。
它是一个接口。
创建有序集合。
项目可以重复。

该列表具有三个实现类。
数组列表、向量、链表。

矢量。
是List的实现类。
用数组制作。
它有点像ArrayList。

Vector 最有趣的事情是。
它是线程安全的。
该方法添加了同步。

这是什么意思?也就是说,一次只有一个线程可以移动它。
所有其他线程必须等待。

这一切进展缓慢。
系统开销较大。
访问向量。
比ArrayList慢很多。

列表本身并不能保证线程安全。
实现类也不是。
你必须让自己同步。

性能。
列表内存不足。
默认扩展为 5 0%+1 项。

向量内存不足。
默认放大倍数为 1 倍。
所以矢量性能。
一般来说比ArrayList差。

方法。
Vector 多了一个indexOf。
从指定位置搜索参考。

现在使用矢量。
越来越少。

因为java.util.concurrent包。
还有更有效的同步收集。

所以矢量。
只剩下一项线程安全功能了。

适合多线程。
安全地共享数据。
阶段。

列表。
它的范围要广泛得多。
各种募捐活动。
都可以用。

算了。
由你决定。

list集合的主要实现类有哪些