HashMap工作原理

       以前使用过很多次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方法的调用次数,从而提高程序效率。 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值