What is HashMAP?

--------------------------------In the begining of this paper,we give a picture to overview the hashmap----------------------------------------

the key and value in hashmap can be null.

hashmap

from the picture above,we can know the data structure of hashmap is:

     一个数组+N个链表,数组每一项对应一个链表。

    即:ArrayList<Entry<Key,value>>[ ]

    HashMap存储的实现原理:当我们往HashMap中put元素的时候,先根据key的hashCode重新计算hash值(hashCode & (table.length -1)),根据hash值得到这个元素在数组中的位置(即下标),如果数组该位置上已经存放有其他元素了,那么在这个位置上的元素将以链表的形式存放,新加入的放在链头,最先加入的放在链尾。如果数组该位置上没有元素,就直接将该元素放到此数组中的该位置上。

   just like this:


data structure

在hashmap 中查询的实现

    just like this:


计算key的hashcode

we give a flowchat for the method put(key,value) of hashmap


flowchat

hashmap 如何扩容(resize)

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 实际上,HashSet 和 HashMap 之间有很多相似之处,对于 HashSet 而言,系统采用 Hash 算...
    曹振华阅读 2,524评论 1 37
  • 一、基本数据类型 注释 单行注释:// 区域注释:/* */ 文档注释:/** */ 数值 对于byte类型而言...
    龙猫小爷阅读 4,288评论 0 16
  • 前几天带犀利去早教上课,一个2岁4个月的男孩在一堂课上打哭两个孩子,带他上课的姥姥面子挂不住,大声呵斥甚至想把孩子...
    犀利岩阿母阅读 1,894评论 0 5
  • 今天练习了水彩 每次画水彩我就觉得我不擅长画背景 先用勾线笔打好了稿子 开始上色 心中开始构思重色在什么部分 然后...
    小山YI粟阅读 329评论 2 5
  • 从兰州说起,从陌生的董小姐说起。陌生的人,请给我一只兰州。 简书里的文章看多了,着实在故事的海洋里迷失了,也觉得自...
    郭大胆LYX阅读 257评论 0 2