首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > JAVA > J2SE开发 >

HashMap和Hashtable 之原代码详解 (本人原创)解决思路

2012-04-10 
HashMap和Hashtable 之原代码详解 (本人原创)Hashtable从JDK1.0就已经有了,所以让我们先来看看它是怎么工

HashMap和Hashtable 之原代码详解 (本人原创)
Hashtable从JDK1.0就已经有了,   所以让我们先来看看它是怎么工作,   然后有浅入深,   来研究HashMap的原理,   以及两者的不同点.

Hashtable有几个主要的字段,   如下,

        /**
          *   The   hash   table   data.
          */
        private   transient   Entry[]   table;

        /**
          *   The   total   number   of   entries   in   the   hash   table.
          */
        private   transient   int   count;

        /**
          *   The   table   is   rehashed   when   its   size   exceeds   this   threshold.     (The
          *   value   of   this   field   is   (int)(capacity   *   loadFactor).)
          *
          *   @serial
          */
        private   int   threshold;


其中最重要的就是那个table数组了.   它就是整个hashtable的基本数据结构!   在来看一下这个字段
private   transient   Entry[]   table;

可以看到,   hashtable的基本数据结构就是,   一个包涵Entry类的二维数组.   而这个Entry类是hashtable的内在类,   它其实是一个单向链,   让我们详细分析一下.


      private   static   class   Entry <K,V>   implements   Map.Entry <K,V>   {
int   hash;
K   key;
V   value;
Entry <K,V>   next;
...
...

看到这里有没有想到学校里教的数据结构原理这门课呢?   Entry类就是定义了一个很简单的单向链结构,   它里面包括key,   value和下个Entry类的对象next.
在这里我在强调一下,   hashtable的数据结构就是一个包涵单向链的二维数组.

(未完待续)

[解决办法]
支持下~~
[解决办法]
xie xie 完了?
[解决办法]
HashMap有看头,支持
[解决办法]
支持下
[解决办法]
等下文...
[解决办法]
ding
[解决办法]
等什么下文啊,你打开src.zip文件就是jdk的srouce,你爱怎么看怎么看,不过楼主还是辛苦了
[解决办法]
up
[解决办法]
记号一个
[解决办法]
暂时没时间,晚上回来和你一起讨论,嘿嘿,你说的一而不一定对哦 :)
[解决办法]
Thanks a lot
[解决办法]
不错!
[解决办法]
等下期....
[解决办法]
分析的挺好
[解决办法]
不错呀!!!!
------解决方案--------------------


有意思,这样的精神喜欢

热点排行