hashtable,hashMap,vector和ArrayList

关于vector,ArrayList,hashMap和hashtable之间的区别

vector和ArrayList:  线程方面:  vector是旧的,是线程安全的  ArrayList是java2之后才有的,是非线程安全的  所以在多线程的情况下,最好使用vector,因为其线程安全,在只有一个线程的情况下最好使用ArrayList,由于它是非线程安全的,所以效率更高。  数据增长方面:  vector和ArrayList都可以在初始化的时候设置其初始值,在超过初始值之后,vector默认增长是按照初始值的2倍,而且可以自定义设置,ArrayList的相关文档上没说增长是多少,但是查看源码是初始值的1.5倍,好像不可以自定义设置。

hashtable和hashMap:    hashtable是旧的,是线程安全的  hashMap是java2之后才有的,是非线程安全的  hashMap是hashtable的一个轻量级实现  hashtable是继承自directory  hashMap是实现Map接口  hashMap去掉了hashtable的contains方法,增加了containskey和containsvalue方法  hashMap可以将值和键设置为null,hashtable不行。

原文地址:https://www.cnblogs.com/Mindreader/p/5389361.html