【发布时间】:2013-11-25 02:56:13
【问题描述】:
(dolist (i list (hash-table-count hash))
(setf (gethash i hash) t))))
上面的代码是我因病错过的一个讲座教程的摘录,我理解了一些代码,但我不知道它是如何计算不完全相同的元素的。
我所知道的:我们正在循环遍历列表,对于列表中的每个 i,我们将哈希表中的 i 设置为键,并将值设置为 true。
【问题讨论】:
-
那么,问题是什么?
-
一个哈希不能包含给定键两次或多次。哈希表被用于压缩重复键。他们就是这样做的;它们是一个动态集数据结构。一个集合要么包含一个元素,要么不包含;它不包含一个元素两次或三次。如果两次向哈希添加一个键,它只存在一次,并且与最近的值相关联。