首页 > 代码库 > 彻底来理解下hashmap吧
彻底来理解下hashmap吧
1.什么叫hashmap?
答:首先是一种map集合,其次呢,它是一种利用hash表来存储的数据结构。所以叫hashmap.
2.hashmap的特点是什么?
答:hashmap的特点是key值不能重复,否则根据key,可以读取到多个对应的value了啊。
3.那么怎么保证map的key不能重复呢?
答:很简单,利用hashcode值是每个对象的一种状态这个属性来区分每个一个对象就行了嘛。
hashcode值是每个对象的一种状态值。
利用hash算法来计算得出的一种码值,hash算法要传入参数,这个传入的不同参数,决定了hashcode值得最终结果啊。
比如,string,Integer这种封装类,已经重写了hashcode()这个方法,指定了利用string/integer具体的内容来进行hashcode算法传参。
所以string值一样,那么这几个string对象的hashcode值夜一样。
这就可以将string作为map的key啊,保证了key不重复。因为hashmap,底层实现原理是判断传入key的hashcode值来防止重复对象的。
4.而普通Object类,默认的计算hacode值得方法hashcode()默认将对象的内存地址传参,进行hashcode值计算的。每个对象的内存地址当然都不一样啊,所以hasshcode也都不一样。即使内容相同的两个对象,由于内存地址不一样,而默认的hashcode()方法是计算内存地址传参的,也造成 了,依然可以放入hashmap中。
彻底来理解下hashmap吧
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。