欢迎来到我的博客

HashMap与HashTable的区别

HashTable是在Java1.0推出的,内部大量使用synchronized同步锁保证线程安全,导致效率低下。HashMap是在Java1.2新集合框架重写时推出的,为了提升性能,而放弃了线程安全。

HashTable不允许存入空Key和空Value。HashMap允许存放空key和空值,当多个空key时,只保留最后一个(相当于HashMap不允许有重复key)。

HashTable继承Dictionary(字典)抽象类来枚举key和value。HashMap不再使用这种方式,使用迭代器或key集合来遍历。

HashTable默认的初始大小为11,之后每次扩充为原来的2n+1。HashMap默认的初始化大小为16,之后每次扩充为原来的2倍。

解决冲突方面,Java8中的HashMap使用了红黑树,提升了性能。

posted @ 2018-09-30 10:27  八千轮回  阅读(106)  评论(0编辑  收藏  举报
人生三从境界:昨夜西风凋碧树,独上高楼,望尽天涯路。 衣带渐宽终不悔,为伊消得人憔悴。 众里寻他千百度,蓦然回首,那人却在灯火阑珊处。