HashMap的key相同,value不覆盖

最近在做作业的时候有个同学突然问我,HashMap里面的key是唯一的value不唯一,虽然在put的时候会将key去重,但是出现了一个问题,那就是我之前的value被覆盖了呀,于是我们就一起讨论,

首先我的第一想法是将问题扼杀在put之前,也就是来一个判断,如果存在相同的key就不添加了。但是这种方法好像需要从键盘接收一个key,与之前的题意有点出入。问题就出现在我既添加了,但是也不覆盖,而我则是不让添加。

后来我又想了一个法子,那就是你添加就添加呗,你不是把我的value给覆盖了嘛,那我先找个找个容器把我之前的value给保存起来,如果你小子把我的value给赶走了,嘿嘿~~~我再把你给改回来!我同学说我这个想法有点脱裤子放屁的感觉……

于是乎,我开始了我长达两个小时的思考,既然put方法是HashMap提供的,它里面在put的时候肯定是先做了约定了的。

所以问题可想而知,我既要put,又要不覆盖,那我只能重写put方法..............

那说干就干,重写你是不是得了解别人是咋做的,你才好顺着他的思路做一些坏事~嘿嘿~那就不用我说了吧,该干啥,当然是看原码了!好家伙,不看不知道,一看我就SuanQ了,盘根错节,那咱也不是怕事的人,干就完事了。今天不是你死就是我活!

 

定义一个类MyHashMap继承了HashMap,然后重写里面的put方法:

 

那我都重写了,我就不用你HashMap了,你我自己开个小灶,就用自己的MyHashMap 

 最后,小编想说的就是,当你觉得不可思议的时候,那就是别人的不可思议你不理解(都是原码犯的错~~)

  • 3
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值