HashMap工作原理

来源:互联网 发布:大学社交 知乎 编辑:程序博客网 时间:2024/06/06 02:03

       以前使用过很多次HashMap,但是对于其是如何实现的却不是很了解,最近看了看HashMap的源码加上自己的理解写了这篇文章方便以后回忆,写得不好的地方请提醒。

        HashMap继承了AbstractMap类并且实现了Map、Cloneable、Serializable三个接口。

        PS:并不是每一个集合类都会实现Cloneable、Serializable接口,克隆(Cloneable)和序列化(Serializable)应该由集合类的具体实现来决定是否实现这两个接口。而Collection 和Map 接口,一个是元素集合,一个是键值对集合。

HashMap使用.put(K,V)方法添加元素,put方法是用来向HashMap中添加新的元素,从put方法的具体实现可知,会先调用hashCode方法得到该元素的hashCode 值,然后查看table中是否存在该hashCode值,如果存在则调用equals方法重新确定是否存在该元素,如果存在,则更新value值,否则将 新的元素添加到HashMap中。从这里可以看出,hashCode方法的存在是为了减少equals方法的调用次数,从而提高程序效率。 

0 0
原创粉丝点击