大郎,起来喝药� 2022-03-02 23:38
浏览 8
已结题

您好,对你发表的《10分钟拿下HashMap》有疑问

img

第四步:将当前对应的 hash,key,value封装成一个 Entry,去数组中查找当前位置有没有元素,如果没有,放在这个位置上;如果此位置上已经存在链表,那么遍历链表,如果链表上某个节点的 key 与当前key 进行 equals 比较后结果为 true,则把原来节点上的value 返回,将当前新的 value替换掉原来的value,如果遍历完链表,没有找到key 与当前 key equals为 true的,就把刚才封装的新的 Entry中next 指向当前链表的始节点,也就是说当前节点现在在链表的第一个位置,简单来说即,先来的往后退。

如果hashMap添加元素,如果该位置有元素,比较当前元素的hash值和要添加元素的hash如果相等,并且当前元素与要添加元素的equals()返回为true,则替换值;如果不同,进行遍历子节点比较,如果没有找到,是添加到该Node节点的最后一个元素,也就是末尾。

img

  • 写回答

0条回答 默认 最新

    报告相同问题?

    问题事件

    • 系统已结题 3月10日
    • 创建了问题 3月2日

    悬赏问题

    • ¥15 MATLAB解决问题
    • ¥35 哪位专业人士知道这是什么原件吗?哪里可以买到?
    • ¥15 关于#c##的问题:treenode反序列化后获取不到上一节点和下一节点,Fullpath和Handle报错
    • ¥15 一部手机能否同时用不同的app进入不同的直播间?
    • ¥15 没输出运行不了什么问题
    • ¥20 输入import torch显示Intel MKL FATAL ERROR,系统驱动1%,: Cannot load mkl_intel_thread.dll.
    • ¥15 点云密度大则包围盒小
    • ¥15 nginx使用nfs进行服务器的数据共享
    • ¥15 C#i编程中so-ir-192编码的字符集转码UTF8问题
    • ¥15 51嵌入式入门按键小项目