日期:2014-05-20  浏览次数:20688 次

源代码看不出来!

这里是 HashMap的内存图,我看了好多源代码了,不明白的地方是,源代码看不出新增的 Entry 对象的next 指向原来的 Entry 对象。
大家应该懂我的意思吧。
因为是链式存储的,当然,我这里说的情况是对象可以被增加进去的情况。

帮忙指出哪一步(源代码)是达到我说的。
谢谢咯
------解决方案--------------------
你是说put?put里查询如果key已经存在则替换匹配的entry的value entry的next不变,如果key不存在则addEntry,在addEntry里创建新的entry在创建是给next赋值

Entry<K,V> e = table[bucketIndex];
table[bucketIndex] = new Entry<K,V>(hash, key, value, e);


------解决方案--------------------
next即是之前table里这个index上的entry