如何向老婆解释HashMap

微信公众号:[老张聊天]
又稳又重的老码农,分享工作生活经验。
风趣幽默的段子手,总结编程专业知识。
希望能用通俗易懂的语言,给小伙伴带来收获~
[如果觉得对您有帮助,欢迎关注,转发,点赞!]

一、看视频最好带耳机

晚上在家看视频学习中,开了外放,刚好在讲HashMap,老婆在旁边问道:“HashMap是啥?”

大脑中飞速闪过,前阵子看过另外一篇文章《如何向老婆解释RPC》,文章中作者怕老婆听不懂责罚自己刷碗,很巧妙的用了比喻方式,给老婆解释清楚RPC,最后确难逃刷碗命运的悲惨故事。

当时我还特意给老婆分享了这篇文章,没想到她今天学以致用了。。致用了。用了。了。

沉默2秒后…

“我先去刷碗,回来给你讲讲什么是HashMap!”

二、刷碗回来后

“HashMap ,好比学校的一栋宿舍楼,给学生提供住宿用。假如你是学校领导,你要怎么安排学生住宿呢?”我问老婆。

“那简单,一个房间安排8个人,满了就继续安排下一个房间。”老婆回答道。

“那怎么从一堆学生中,挑选8个出来,安排到同一个房间呢?”我追问。

“我那个时候是相同专业,按照报道时间的先后顺序来的。”老婆答道。

“我要提升难度咯,给你加一些限制条件,再看看你怎么安排?”我的语气中带着一点小计谋得逞的得意。
“放马过来!”老婆还未发现我的阴谋。

三、小阴谋开始

“1、每个房间住的人数不固定。”
“2、你不知道总共有多少学生,只知道有16间宿舍。”
“3、每间宿舍人数尽量平均,不能说一个宿舍空着,另一个宿舍住了5,6个人。”

老婆听完后,脸色开始转变,开始转移话题,“哪里有这么好的学校?”

我看气氛有些不对,赶紧降低了难度,“给你提个醒啊,比如,每个人的出生月份不一样,我们可以按照月份,1月出生的安排到一起,2月出生的安排到一起。但是一年12个月,这样会空了4个房间。你看要怎么改善下呢?”

“可以按日子来算啊,1号出生的住一起,2号出生的住一起…17号出生的可以和1号一起住,以此类推啊,你看我是不是很聪明?”

“对对对,是是是。”我赶紧恭维道。
“不过,这种分配方法还是有一些问题,第16间宿舍相比其他肯定宽敞,毕竟一个月份没有32天。”

“那你说咋办?”老婆语气开始转变了。

四、适可而止

我的脑海里闪过计算机中的二进制,位运算,补码,反码,高低位…不行,范围铺太广解释不清了,不能给自己挖坑。

“代码程序可以做到啊,其实咱们根据学生信息,算出来住哪间宿舍的过程,就是做Hash运算的意思啦。不过程序里面实现的机制比较复杂,都是为了不让学生住的那么挤。”我赶紧开始总结。

“要真有这么好的学校领导,就好了。我们那个时候8个人挤一个屋子,然后…”老婆开始回想学生时代的苦日子,我赶紧附和道“这么惨?太难了!真的吗?这样啊,然后呢?”

我的脑海里却继续蹦出来更多的专业名词,阈值,扩容,转移,rehash,单双向链表,红黑树,并发,unsafe,CAS,各种锁…

想起家里地还没有拖,还好我适可而止了。。

写在尾声

五一假期要结束了,感谢大家阅读支持。
后面节假日不加班的话,开始更新程序猿学习系列一。
《老张带你看源码》敬请期待~

感谢大家的阅读,欢迎大家长按二维码关注,私信交流,转发,点在看,谢谢!

欢迎扫码关注

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章