Vector是一个矢量队列,通过实现RandomAccess接口,即提供随机访问功能。Vector和ArrayList相似,不同的是Vector支持同步,而且Vector包含了许多传统的不属于集合框架的方法。
Vector
|(extneds)_AbstractList
|(implements)_List,RandomAccess,Cloneable,Serializable
Hashtable被集成到框架集合中,和HashMap类相似,主要的不同点在于Hashtable支持同步。
Hashtable<K,V>
|(extneds)_Dictionary
|(implements)_Map<K,V>,Cloneable,Serializable
生产中最好不要使用Vector和Hashtable了吧,忘了吧忘了吧,不需要线程安全的
Vector使用ArrayList代替,Hashtable使用hashMap代替;
需要线程安全的vector用
List list = Collections.synchronizedList(new ArrayList(…));集合操作类来实现,读多写少的场景可用CopyOnWriteArrayList来实现,Hashtable用则用ConcurrentHashMap来实现。
如果对于老旧的项目中有使用Vector和ArrayTable的,可以通过List list = Collections.synchronizedList(new ArrayList(…));来进行转化到为主流的形式;如果项目中是使用ArrayList等这些非线程安全的集合,如果遇到需要并发环境,并发度不像电商那样需要这么高的并发量的,也可以List list = Collections.synchronizedList(new ArrayList(…));来将不安全的集合转化为安全的集合来进行使用。