欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

java面试题-HashMap的工作原理

程序员文章站 2022-07-10 11:58:07
HashMap基于hashing原理,我们通过put()和get()方法储存和获取对象。当我们将键值对传递给put()方法时,它调用键对象的hashCode()方法来计算hashcode,让后找到bucket位置来储存值对象。当获取对象时,通过键对象的equals()方法找到正确的键值对,然后返回值 ......

hashmap基于hashing原理,我们通过put()和get()方法储存和获取对象。当我们将键值对传递给put()方法时,它调用键对象的hashcode()方法来计算hashcode,让后找到bucket位置来储存值对象。当获取对象时,通过键对象的equals()方法找到正确的键值对,然后返回值对象。hashmap使用链表来解决碰撞问题,当发生碰撞了,对象将会储存在链表的下一个节点中。 hashmap在每个链表节点中储存键值对对象。

当两个不同的键对象的hashcode相同时会发生什么? 它们会储存在同一个bucket位置的链表中。键对象的equals()方法用来找到键值对。

因为hashmap的好处非常多,我曾经在电子商务的应用中使用hashmap作为缓存。因为金融领域非常多的运用java,也出于性能的考虑,我们会经常用到hashmap和concurrenthashmap。