r*****l 发帖数: 2859 | 1 HashMap是用什么数据结构实现的?
Java怎样serialize一个HashMap? |
g*****g 发帖数: 34805 | 2
一般是一个指向链表的指针数组。
HashMap应该继承了Seriablizable,我不知道
有没有重写实现。
【在 r*****l 的大作中提到】 : HashMap是用什么数据结构实现的? : Java怎样serialize一个HashMap?
|
g**e 发帖数: 6127 | 3 用了个什么inner class数组Entry[] 本质就是个链表
我记得HashMap木有特殊实现serialize的方法,但是好像定义了个serial ID
【在 g*****g 的大作中提到】 : : 一般是一个指向链表的指针数组。 : HashMap应该继承了Seriablizable,我不知道 : 有没有重写实现。
|
r*****l 发帖数: 2859 | 4
没有那样复杂,只是简单的数组。里面的元素是链表。但是这个数组是transient。所以才有第二个问题。
【在 g*****g 的大作中提到】 : : 一般是一个指向链表的指针数组。 : HashMap应该继承了Seriablizable,我不知道 : 有没有重写实现。
|
g*****g 发帖数: 34805 | 5 就是一个数组?那冲突了放哪?一般都是指向链表的数组,冲突了
直接链上去。当然你要实现成冲突了直接放下一个空的位置也可以,
只是冲突更厉害。我觉得这都取决于具体实现,跟类的接口没有关系了。
【在 r*****l 的大作中提到】 : : 没有那样复杂,只是简单的数组。里面的元素是链表。但是这个数组是transient。所以才有第二个问题。
|
r*****l 发帖数: 2859 | 6 忘了说链表。你说的对。
【在 g*****g 的大作中提到】 : 就是一个数组?那冲突了放哪?一般都是指向链表的数组,冲突了 : 直接链上去。当然你要实现成冲突了直接放下一个空的位置也可以, : 只是冲突更厉害。我觉得这都取决于具体实现,跟类的接口没有关系了。
|
g**e 发帖数: 6127 | 7 是个数组Entry[],但是innser class Entry本身是个链表
【在 g*****g 的大作中提到】 : 就是一个数组?那冲突了放哪?一般都是指向链表的数组,冲突了 : 直接链上去。当然你要实现成冲突了直接放下一个空的位置也可以, : 只是冲突更厉害。我觉得这都取决于具体实现,跟类的接口没有关系了。
|
F****n 发帖数: 3271 | |
r*****l 发帖数: 2859 | 9 看第二个问题。我没说这个问题有什么trick。只不过在面试里面也算是考基本概念的综合题了。
【在 F****n 的大作中提到】 : 这难道不是常用的HASH表么,TRICK在哪
|
k******p 发帖数: 21 | 10 you can take a look are source code.
btw HashMap is not thread-safe
【在 r*****l 的大作中提到】 : HashMap是用什么数据结构实现的? : Java怎样serialize一个HashMap?
|