map中的两个重要方法:添加和获取元素

  • map.put(k,v);原理

    1. 先将k,v封装到node对象中

    2. 底层调用hashCode()方法得出hash值,通过哈希算法将该hash值转换成数组下标的形式。

      若下标位置没有任何元素,则将该节点添加到对应位置上,若下标位置有元素,则用此k和链表中的每一个节点中的k进行比较,如果返回值为false,则该节点添加到链表的末尾。若返回值为true,则说明该节点的k与链表中某个位置上的节点中的k相同,由于链表的无需不可重复性,k相同时,v直接被覆盖。

  • v=map.get(k);原理

    1. 先调用k的hashCode()方法得到哈希值,通过哈希算法将转换成数组下标

    2. 将该节点K与对应下标位置上的链表中的节点K一一对比,调用重写的equals()方法,若返回值为false,则map.get(k)返回值为:null,若返回值为true,则map.get(k)返回Value

posted @ 2021-04-16 20:29  安妍  阅读(1428)  评论(0编辑  收藏  举报