发布网友 发布时间:2022-03-29 13:01
共1个回答
热心网友 时间:2022-03-29 14:31
ArrayList和Vector都实现了List接口,我们可以分析其源代码,很容易找出它们的区别:
Vector中的add方法如下:
public
synchronized
boolean
add(E
e)
{}
ArrayList中的add方法如下:
public
boolean
add(E
e)
很显然区别就在于一个有synchronized即线程同步,而另一外没有,参考源代码你会发现绝大部分方法都是这样的。
也就是说当存在多线程访问时,Vector比ArrayList要安全,但这种安全的代价就是要付出更多的系统性能
一般情况下我们是使用ArrayList,因为存在多线程去访问同一个list对象的可能性并不是太多。
对于HashMap和Hashtable原理是一样的,Hashtable实现了线程同步,能确保多线程访问时的安全性,性能要比hashMap低