11得票7回答
哈希表中的键在整数区间内

我不知道这是否可能,但我正在尝试创建一个Hashtable,其中Interval是一个具有2个整数/长整数值的类,即开始和结束,并且我想做出这样的东西: Hashtable<Interval, WhateverObject> test = new Hashtable<Int...

7得票5回答
为什么随机探测在哈希表实现中不太流行?

根据维基百科和谷歌发现的各种.edu网站等多个来源,哈希表解决冲突的最常见方式是线性探测、二次探测和链接法。虽然随机探测被简单地提到了一下,但并没有受到太多关注。我已经实现了一个使用随机探测解决冲突的哈希表。假设存在冲突,则解决方法如下: 使用对象的完整(32位)哈希来种子化线性同余随机数...

8得票5回答
多线程环境下的HashMap和Hashtable

我对这两个集合在多线程环境下的行为非常困惑。 哈希表是同步的,这意味着没有两个线程会同时更新它的值,对吗?

26得票3回答
散列表:为什么在开放地址法中删除操作很困难

我正在尝试理解开放寻址法。我参考了 T.H. Cormen 的相关书籍,其中指出在开放寻址中删除操作很难。我完全无法理解以下段落: 从开放地址哈希表中删除一个键是困难的。当我们从槽i中删除一个密钥时,我们不能简单地通过将NIL存储在其中来标记该槽为空。这样做可能会使在插入我们已经探测到槽i并...

9得票1回答
基本哈希表算法 - 删除重复项

我今天早上有场面试,被问到了“给出一种从整数列表中删除重复项的算法”的问题。这是一个相当标准的问题,所以我非常自信能够回答它。 我的回答大致是:“可以使用哈希表。从第一个整数开始插入哈希表。然后对于每个后续的整数,进行哈希表查找以检查该整数是否已经在哈希表中,如果不在,则插入哈希表,如果已经...

13得票2回答
条件性地在哈希表中包含一个键值对

有人能帮我缩短下面的方法吗?我最初写的是这样的,感觉还不错:def self.some_hash { "foo" => "bar" } end 现在我想添加一个可选键。我能想到的最简洁的语法是这样的: 现在我想要添加一个可选的键。我能想到的最简洁的语法是:def self.some...

26得票7回答
流行编程语言中哈希表的内部实现方式是怎样的?

请问有人能够解释一下像Python、Ruby这样的流行编程语言是如何实现哈希表进行符号查找的吗?它们使用经典的“数组和链表”方法,还是使用平衡树? 我需要一种简单(少量代码行)且快速的方法,用于索引用C语言编写的DSL中的符号。想知道其他人发现什么最有效和实用。

12得票3回答
Java中使用整数键的散列表

我正在尝试创建一个Hashtable,如下所示:Hashtable<int, ArrayList<byte>> block = new Hashtable<int, ArrayList<byte>>(); 但是我在 int 和 byte 上都遇到...

23得票3回答
如何在删除元素时防止std :: unordered_map重新哈希化?

我有一个 std::unordered_map,我将通过迭代从中删除元素。auto itr = myMap.begin(); while (itr != myMap.end()) { if (/* removal condition */) { itr = myMap....

7得票6回答
哈希表和二叉搜索树的时间复杂度比较:Big O。

哪个需要更长的时间呢? 按排序顺序打印存储在二叉搜索树中的所有项目还是打印存储在哈希表中的所有项目。 打印哈希表中的项目按排序顺序输出需要更长的时间,因为哈希表从来没有排序过,而二叉搜索树是有序的,对吗?