A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

可以画个图 表示一下hash码结构描述一下么

4 个回复

倒序浏览
这个可以借鉴一直下张老师的高新部分,那里有关于hash的介绍,为了检索方便,分类存放的。。。
回复 使用道具 举报
HashMap的数据结构:
    HashMap实际上是一个“链表散列”的数据结构,即数组和链表的结合体。首先,HashMap类的属性中定义了Entry类型的数组。Entry类实现java.ultil.Map.Entry接口,同时每一对key和value是作为Entry类的属性被包装在Entry的类中。
如图所示,HashMap的数据结构:



   HashMap的部分源码如下:
  1. /**  
  2. * The table, resized as necessary. Length MUST Always be a power of two.  
  3. */   
  4.    
  5. transient Entry[] table;   
  6.      
  7. static class Entry<K,V> implements Map.Entry<K,V> {   
  8.     final K key;   
  9.     V value;   
  10.     Entry<K,V> next;   
  11.     final int hash;   
  12.     ……   
  13. }
复制代码
可以看出,HashMap底层就是一个数组结构,数组中的每一项又是一个链表,当新建一个HashMap,就会初始化一个数组,table数组元素的类型就是Entry类型的,每个Entry就是一个键值对,并且持有一个指向下一个Entry元素的引用。

评分

参与人数 1技术分 +1 收起 理由
敏敏好学 + 1 很给力!

查看全部评分

回复 使用道具 举报
daoqin 发表于 2014-10-1 15:35
HashMap的数据结构:
    HashMap实际上是一个“链表散列”的数据结构,即数组和链表的结合体。首先,HashM ...

敏敏好学版主,可否给我评个技术分哦 。 - -
回复 使用道具 举报
苏乞儿 发表于 2014-10-1 15:17
这个可以借鉴一直下张老师的高新部分,那里有关于hash的介绍,为了检索方便,分类存放的。。。 ...

多谢回复,谢谢了 ,!
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马