hashmap与hashtable,arraylist与vector
hashmap:
key可以为null,key为null的话,就不会计算hashcode码,直接给了一个0,
hashmap是2倍扩容原来的容量左移一位,
线程不安全,
计算下标不同,hashmap下标是高位与地位的‘&’运算
hashtable:
key以及value都不能为null,value为null会抛异常,hashcode值是根据key来计算的,而null没有hashcode()方法,所以key也不能为null,
扩容是2倍加1,原来的容量左移一位,
线程安全被synchronized修饰
计算下标不同,hashtable下标是取余(也就是%号)
arraylist:
线程不安全
1.5倍扩容
vector:
线程安全被synchronized修饰
扩容不同,vector可以传一个增长因子,不传默认二倍
太老了,不建议使用