首页 > 编程知识 正文

HashMap的底层实现原理,HashMap的底层原理

时间:2023-05-03 22:53:47 阅读:51089 作者:4445

关于Java中HashTable与HashMap的区别: 1、继承: HashTable从Dirctionary继承,HashMap从AbstractMap继承,两者都实现了Map接口; 2、线程安全: HashTable方法同步,线程安全。 HaspMap方法不是同步的,不是线程安全的。 对于多线程并发,可以直接使用HashTable。 要使用HashMap,必须进行HashMap同步处理。 3、键值: HashTable不允许空键和空值。 HashMap允许一个空密钥。 一个或多个键可以存在的值都为空。 在程序中,如果对HashMap使用get (参数为键)方法,则返回的结果为null,要么该键不存在,要么与该键对应的值为null,从而体现结果的二义性。 因此,在HashMap中,不能使用get )方法检查与键对应的值。 containskey ) )方法。 4、遍历:这两种遍历方式的实现不同。 HashTable和HashMap都实现了迭代器。 但是,由于历史原因,HashTable还使用Enumeration。 5、哈希值: HashTable是直接使用对象的hashCode。 混列映射是重新计算混列值。 6、扩展: HashTable和HashMap基础实现的数组和初始大小及扩展方式。 HashTable的初始大小为11,每次扩展时为2*old 1。 HashMap的默认大小为16,始终为2的指数,每次扩展时为old*2。

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。