什么是哈希表的常见示例?

7
我在想是否有一些“标准”的例子,每个人都可以用来解释需要哈希表的问题的本质。在现实世界中,有哪些众所周知的问题可以通过使用哈希表获得巨大的好处?
*编辑:此外,对于为什么问题的本质可以从哈希表中受益的背景或解释也会有所帮助!谢谢
5个回答

11
一个现实世界的例子:假设我在一家酒店住了几天,因为我参加一个关于哈希的大会。每天结束时,当我回到酒店时,我会问前台职员是否有我的留言。在他的背后是一个类似鸽舍的橱柜,有26个条目,标记为A到Z。因为他知道我的姓氏,他走到标记为W的插槽,并取出三封信。其中一封是给Robby Williams的,一封是给Jimmy Webb的,还有一封是给我自己的。
职员只需要查看三个信封。如果只有一个信箱,他需要查看多少封信?

5

当我想要通过ID在内存中搜索用户记录时。

另一种选择是使用列表。但每次都需要循环查找用户。哈希表将使我只需一次调用就可以获得用户对象。


2
当你去滑冰时,你需要将你的鞋子换成冰鞋。他们会拿走你的鞋子,放到带有你尺码的冰鞋盒中,并给你一双冰鞋和一个代币,代币上标有尺码(哈希值)和鞋子编号(哈希桶中的元素)。最初的回答。

1

缓存,如果有新数据进来,我们将使用键覆盖现有记录。因此,基本上缓存将用于存储最近的状态。


0
无论何时你拥有一个键(或属性)-值列表,哈希表(又称关联数组)都应该浮现在你的脑海中:
foo['bar']="baz";
surname['joe']="shmoe";

哈希表将一维数组的概念(其中键是连续整数,哈希函数是标识)推广到键值可以是任何内容且哈希函数是...好吧,这些天你很少能看到哈希的细节,因为大多数语言都会用类似上面的语法隐藏哈希的细节。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接