一亩三分地论坛

 找回密码
 获取更多干货,去instant注册!

扫码关注一亩三分地公众号
查看: 1159|回复: 20
收起左侧

[算法题] HashMap小盲区

[复制链接] |试试Instant~ |关注本帖
love1point 发表于 2015-6-12 18:51:31 | 显示全部楼层 |阅读模式

注册一亩三分地论坛,查看更多干货!

您需要 登录 才可以下载或查看,没有帐号?获取更多干货,去instant注册!

x
HashMap<Integer, Integer> map = new HashMap<Integer, Integer>();
                map.put(3, 0);
                map.put(3, 1);

我测试了一下,第二个会把第一个给覆盖了?不能同时存在 ( 3,0) 和 (3,1)?
测试完好像这样

ant04444 发表于 2015-6-12 22:44:27 | 显示全部楼层
hashtable不就是这个特性吗?
回复 支持 1 反对 0

使用道具 举报

tianyanchong 发表于 2015-6-12 19:14:16 | 显示全部楼层
请问楼主,你这个代码是哪里弄来得?
回复 支持 反对

使用道具 举报

 楼主| love1point 发表于 2015-6-12 19:23:26 | 显示全部楼层
tianyanchong 发表于 2015-6-12 19:14
请问楼主,你这个代码是哪里弄来得?

我自己编的啊,然后放到eclipse测试
其实,是从这个帖子 http://www.1point3acres.com/bbs/thread-136282-1-1.html 得来的测试idea
回复 支持 反对

使用道具 举报

zj45499 发表于 2015-6-12 20:05:54 | 显示全部楼层
不能.
如果Integer 3同时指向Integer 1和 Integer 0的话
get(3)的时候不就乱套了 返回哪一个呢...

Doc里说的是
public V put(K key, V value)
Associates the specified value with the specified key in this map. If the map previously contained a mapping for the key, the old value is replaced.

回复 支持 反对

使用道具 举报

 楼主| love1point 发表于 2015-6-12 20:20:15 | 显示全部楼层
zj45499 发表于 2015-6-12 20:05
不能.
如果Integer 3同时指向Integer 1和 Integer 0的话
get(3)的时候不就乱套了 返回哪一个呢...

是的,不能同时存在同一个key的。我也测试过了,会取代了。

非常感谢你贴出API说明,我没想到去看这个。
http://docs.oracle.com/javase/7/docs/api/
回复 支持 反对

使用道具 举报

 楼主| love1point 发表于 2015-6-12 20:22:31 | 显示全部楼层
zj45499 发表于 2015-6-12 20:05
不能.
如果Integer 3同时指向Integer 1和 Integer 0的话
get(3)的时候不就乱套了 返回哪一个呢...

非常感谢你贴出api给我idea, 平时我也是有看的,不过这次没想到。下次我再遇到这种问题,api最权威啦,查之
回复 支持 反对

使用道具 举报

pyx115 发表于 2015-6-12 20:26:53 | 显示全部楼层
1L的代码肯定会覆盖啊,如果要同时存在,把ArrayList作为map的value可以不
回复 支持 反对

使用道具 举报

 楼主| love1point 发表于 2015-6-12 20:31:20 | 显示全部楼层
pyx115 发表于 2015-6-12 20:26
1L的代码肯定会覆盖啊,如果要同时存在,把ArrayList作为map的value可以不

嗯,用ArrayList 的 add就会一直增加了,(3,[0, 1])
回复 支持 反对

使用道具 举报

 楼主| love1point 发表于 2015-6-12 22:52:24 | 显示全部楼层
ant04444 发表于 2015-6-12 22:44
hashtable不就是这个特性吗?

我下午刚确认清楚哈,之前不太清楚是不是
回复 支持 反对

使用道具 举报

zj45499 发表于 2015-6-12 23:47:48 | 显示全部楼层
本帖最后由 zj45499 于 2015-6-12 23:50 编辑

想想的话其感觉HashSet比较好....元素不重复.
回复 支持 反对

使用道具 举报

yhfyhf 发表于 2015-6-12 23:54:01 | 显示全部楼层
当然啊,HashMap的实现原理注定了k-v是一个map的过程啊,不然取value怎么O(1)
回复 支持 反对

使用道具 举报

cqx83 发表于 2015-6-13 04:25:28 | 显示全部楼层
求大牛PhD普及HashMap知识,洗耳恭听
回复 支持 反对

使用道具 举报

hefang 发表于 2015-6-13 04:39:16 | 显示全部楼层
cqx83 发表于 2015-6-13 04:25
求大牛PhD普及HashMap知识,洗耳恭听

网上很多tutorial,为什么不自己搜一下?
回复 支持 反对

使用道具 举报

cqx83 发表于 2015-6-13 04:44:36 | 显示全部楼层
在lz的帖子里只能虚心求教,不能造次
回复 支持 反对

使用道具 举报

cokecasper 发表于 2015-6-13 04:48:47 | 显示全部楼层
hashmap一个key只能对应一个value,可以想象成一个函数映射嘛...
回复 支持 反对

使用道具 举报

laoxie09 发表于 2015-6-13 05:51:07 | 显示全部楼层
map.put(3, 0); //map : {3=>0}
int a = map.put(3, 1);//map : {3=>1} & value of a is 0(previous value)

回复 支持 反对

使用道具 举报

 楼主| love1point 发表于 2015-6-13 22:46:04 | 显示全部楼层
感谢回答我的同学,我受益良多!
回复 支持 反对

使用道具 举报

hefang 发表于 2015-6-15 01:46:23 | 显示全部楼层
回复 支持 反对

使用道具 举报

xiaoma318 发表于 2015-6-15 06:08:14 | 显示全部楼层
看到这个问题我已经醉了 - -
回复 支持 反对

使用道具 举报

本版积分规则

请点这里访问我们的新网站:一亩三分地Instant.

Instant搜索更强大,不扣积分,内容组织的更好更整洁!目前仍在beta版本,努力完善中!反馈请点这里

关闭

一亩三分地推荐上一条 /5 下一条

手机版|小黑屋|一亩三分地论坛声明 ( 沪ICP备11015994号 )

custom counter

GMT+8, 2016-12-11 10:08

Powered by Discuz! X3

© 2001-2013 Comsenz Inc. Design By HUXTeam

快速回复 返回顶部 返回列表