容器——HashMap和Hashtable

it2022-05-05  171

HashMap与Hashtable的异同是什么?

       答:区别:

              HashMap:线程非同步,效率高   

                              键、值可以为null,但为null的键只能有一个

                             继承AbstractMap类实现Map接口,版本从1.2开始

              Hashtable:线程同步,安全性高

                                键值不能为null(编译不出错,但运行会空指针异常)

                               继承Dictionary类实现Map接口,版本从1.0开始

              相同:二者都实现了Map接口,都是通过键值对存储数据,二者的键都是唯一的,无序的。

 

HashMap的底层原理

HashMap的底层数据结构是什么?

       答:有很多种,主流的是顺序表+链表

      2.简述哈希表的去重原理?

       答:当HashCode计算出来的存储位置上已经有了元素,则使用equals方法,将HashCode和已经在该位置上的所有HashCode进行内容的对比,如果一样,则不再添加,否则以链表的形式添加到链表末尾。


最新回复(0)