Redian新闻
>
来问两个HashMap的问题
avatar
来问两个HashMap的问题# Java - 爪哇娇娃
r*l
1
HashMap是用什么数据结构实现的?
Java怎样serialize一个HashMap?
avatar
g*g
2

一般是一个指向链表的指针数组。
HashMap应该继承了Seriablizable,我不知道
有没有重写实现。

【在 r*****l 的大作中提到】
: HashMap是用什么数据结构实现的?
: Java怎样serialize一个HashMap?

avatar
g*e
3
用了个什么inner class数组Entry[] 本质就是个链表
我记得HashMap木有特殊实现serialize的方法,但是好像定义了个serial ID

【在 g*****g 的大作中提到】
:
: 一般是一个指向链表的指针数组。
: HashMap应该继承了Seriablizable,我不知道
: 有没有重写实现。

avatar
r*l
4

没有那样复杂,只是简单的数组。里面的元素是链表。但是这个数组是transient。所以才有第二个问题。

【在 g*****g 的大作中提到】
:
: 一般是一个指向链表的指针数组。
: HashMap应该继承了Seriablizable,我不知道
: 有没有重写实现。

avatar
g*g
5
就是一个数组?那冲突了放哪?一般都是指向链表的数组,冲突了
直接链上去。当然你要实现成冲突了直接放下一个空的位置也可以,
只是冲突更厉害。我觉得这都取决于具体实现,跟类的接口没有关系了。

【在 r*****l 的大作中提到】
:
: 没有那样复杂,只是简单的数组。里面的元素是链表。但是这个数组是transient。所以才有第二个问题。

avatar
r*l
6
忘了说链表。你说的对。

【在 g*****g 的大作中提到】
: 就是一个数组?那冲突了放哪?一般都是指向链表的数组,冲突了
: 直接链上去。当然你要实现成冲突了直接放下一个空的位置也可以,
: 只是冲突更厉害。我觉得这都取决于具体实现,跟类的接口没有关系了。

avatar
g*e
7
是个数组Entry[],但是innser class Entry本身是个链表

【在 g*****g 的大作中提到】
: 就是一个数组?那冲突了放哪?一般都是指向链表的数组,冲突了
: 直接链上去。当然你要实现成冲突了直接放下一个空的位置也可以,
: 只是冲突更厉害。我觉得这都取决于具体实现,跟类的接口没有关系了。

avatar
F*n
8
这难道不是常用的HASH表么,TRICK在哪
avatar
r*l
9
看第二个问题。我没说这个问题有什么trick。只不过在面试里面也算是考基本概念的综合题了。

【在 F****n 的大作中提到】
: 这难道不是常用的HASH表么,TRICK在哪
avatar
k*p
10
you can take a look are source code.
btw HashMap is not thread-safe

【在 r*****l 的大作中提到】
: HashMap是用什么数据结构实现的?
: Java怎样serialize一个HashMap?

相关阅读
logo
联系我们隐私协议©2024 redian.news
Redian新闻
Redian.news刊载任何文章,不代表同意其说法或描述,仅为提供更多信息,也不构成任何建议。文章信息的合法性及真实性由其作者负责,与Redian.news及其运营公司无关。欢迎投稿,如发现稿件侵权,或作者不愿在本网发表文章,请版权拥有者通知本网处理。