首页 > 编程知识 正文

接口和抽象类的区别,hashtable底层实现原理

时间:2023-05-04 22:07:23 阅读:51095 作者:3518

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,每次扩展时为2old 1。 HashMap的默认大小为16,始终为2的指数,每次扩展时为old2。

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