码迷,mamicode.com
首页 > 其他好文 > 详细

HashMap与HashTable的区别

时间:2018-09-30 10:48:37      阅读:175      评论:0      收藏:0      [点我收藏+]

标签:原来   性能   同步锁   枚举   迭代   效率   sync   集合   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的区别

标签:原来   性能   同步锁   枚举   迭代   效率   sync   集合   hashtable   

原文地址:https://www.cnblogs.com/huigee/p/9728336.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!