美文网首页
一次真实的HashMap面试之问

一次真实的HashMap面试之问

作者: 子暄_5f17 | 来源:发表于2019-02-26 00:12 被阅读0次

    一问:什么是hashMap

    一答:hashmap是用来存储键值对的集合类,可以接受null键值对。

    二问:hashmap的工作原理

    二答:HashMap是基于hasing的原理,使用put存储对象,使用get获取对象。当使用put方法时,首先获取键的hashcode,返回的hashcode用来寻找bucket位置来存储Entry对象。

    三问:当两个键的hashcode相同,如何插入键值对,如何获取值对象

    三答:插入键值对,hashcode相同,他们的bucket位置就是相同,碰撞会发生,hashmap使用链表存储对象,对应的Entry就会保存在链表上。获取值对象,当调用get方法,必然会找到bucket位置,然后遍历bucket位置的链表,用key.equals方法进行比较,就可以找到对应的Entry。

    四问:超过负载因子怎么办?

    四答:进行扩容,负载因子是0.75,需要进行rehash,容量会扩充为当前容量的2倍。

    相关文章

      网友评论

          本文标题:一次真实的HashMap面试之问

          本文链接:https://www.haomeiwen.com/subject/kthoyqtx.html