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


免责声明!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系本站邮箱yoyou2525@163.com删除。



 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM