HashMap与HashTable的区别

Posted huigee

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了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使用了红黑树,提升了性能。

以上是关于HashMap与HashTable的区别的主要内容,如果未能解决你的问题,请参考以下文章

HashMap与HashTable的区别

HashMap与HashTable的区别

HashMap与HashTable的区别

HashMap与Hashtable的区别

Hashtable与HashMap有啥区别?

hashMap与hashTable的区别