标签: hashtable

什么是哈希表和哈希映射及其典型用例?

我最近几次遇到这些术语,但我很困惑它们是如何工作的以及它们何时被实施?

language-agnostic hashtable hashmap

36
推荐指数
2
解决办法
3万
查看次数

如何获取JavaScript哈希表计数?

可能重复:
Javascript关联数组的长度

hash_table = {a: 131, b: 222, c:313}
Run Code Online (Sandbox Code Playgroud)

长度方法当然不起作用,因为它会与密钥混淆.

那我该怎么做?

javascript hashtable

36
推荐指数
1
解决办法
3万
查看次数

在C#中将HashTable转换为Dictionary

如何在C#中将HashTable转换为Dictionary?可能吗?例如,如果我在HashTable中有对象集合,并且如果我想将其转换为具有特定类型的对象的字典,该怎么做?

.net c# generics dictionary hashtable

35
推荐指数
3
解决办法
2万
查看次数

有一个很好的哈希函数的C++哈希表?

我需要在C++中使用面向性能的哈希函数实现来实现我将要编码的哈希表.我已经环顾四周,只发现了一个问题,询问什么是"一般"的好散列函数.我已经考虑过CRC32(但在哪里可以找到很好的实现?)和一些加密算法.不过,我的桌子有非常具体的要求.

这是表格的样子:

100,000 items max
200,000 capacity (so the load is 0.5)
hashing a 6-character string which is a part of English sentence
     examples: "become"    "and he"    ", not "
Run Code Online (Sandbox Code Playgroud)

首要任务我哈希表的是快速搜索(检索).快速插入并不重要,但它会伴随快速搜索.删除并不重要,重新哈希不是我要研究的东西.为了处理冲突,我可能会使用这里描述的单独链接.我已经看过这篇文章了,但是想要对那些曾经处理过这样的任务的人提出意见.

c++ hash hashtable

34
推荐指数
3
解决办法
4万
查看次数

按键名从字典中删除键

如果密钥是某个密钥,我正试图从我的字典中删除密钥.

parameterList是一个 dictionary<string,string>

parameterList.Remove(parameterList.Where(k => String.Compare(k.Key, "someKeyName") == 0)); 
Run Code Online (Sandbox Code Playgroud)

.net c# linq hashtable

34
推荐指数
2
解决办法
7万
查看次数

C#中Hashtable实现的示例是什么?

我意识到C#和.NET通常已经有了Hashtable和Dictionary类.

任何人都可以在C#中演示Hashtable的实现吗?

更新:为了澄清,我不是必须寻找一个完整的实现,只是一个哈希表的核心功能的例子(即添加,删除,按键查找).

.net c# hashtable

33
推荐指数
4
解决办法
4万
查看次数

为什么Hashtable不允许空键或值?

如JDK文档中所述,Hashtable不允许使用null键或值.HashMap允许一个空键和任意数量的空值.为什么是这样?

java hashtable hashmap

33
推荐指数
2
解决办法
6万
查看次数

简单的哈希函数

我正在尝试编写一个使用哈希表来存储不同单词的C程序,我可以使用一些帮助.

首先,我创建一个哈希表,其中素数的大小最接近我必须存储的单词的数量,然后我使用哈希函数来查找每个单词的地址.我从最简单的功能开始,将字母加在一起,结果是88%的碰撞.然后我开始尝试该功能,发现无论我改变它,碰撞都不会低于35%.现在我正在使用

unsigned int stringToHash(char *word, unsigned int hashTableSize){
  unsigned int counter, hashAddress =0;
  for (counter =0; word[counter]!='\0'; counter++){
    hashAddress = hashAddress*word[counter] + word[counter] + counter;
  }
  return (hashAddress%hashTableSize);
}
Run Code Online (Sandbox Code Playgroud)

这只是我提出的随机功能,但它给了我最好的结果 - 大约35%的碰撞.

过去几个小时我一直在阅读有关散列函数的文章,我尝试使用一些简单的函数,比如djb2,但是所有这些都给了我更糟糕的结果.(djb2导致了37%的碰撞,这是'更糟糕的是,但我期待更好而不是更糟糕的事情)我也不知道如何使用其他更复杂的一些,例如murmur2,因为我不知道参数是什么(关键,len ,种子)他们接受了.

即使使用djb2,或者我做错了什么,获得超过35%的碰撞是正常的吗?什么是关键,len和种子价值?

c hashtable function string-hashing

33
推荐指数
1
解决办法
6万
查看次数

为什么hashmap查找是O(1)即恒定时间?

如果我们从Java角度看,那么我们可以说hashmap查找需要恒定的时间.但内部实施呢?对于不同的匹配键,它仍然必须搜索特定的桶(对于哪个键的哈希码匹配).那么为什么我们说hashmap查找需要恒定的时间?请解释.

hash big-o hashtable hashmap data-structures

33
推荐指数
3
解决办法
3万
查看次数

使用符合协议AnyObject的具体类型不受支持

我正在使用Swift 2并使用WeakContainer作为存储一组弱对象的方式,就像 NSHashTable.weakObjectsHashTable()

struct WeakContainer<T: AnyObject> {
    weak var value: T?
}

public protocol MyDelegate : AnyObject {

}
Run Code Online (Sandbox Code Playgroud)

然后在我的ViewController中,我声明

public var delegates = [WeakContainer<MyDelegate>]
Run Code Online (Sandbox Code Playgroud)

但这是错误的

使用MyDelegate作为符合协议AnyObject的具体类型不受支持

我看到的错误是,WeakContainer具有value声明为成员weak,因此T有望成为对象.但我也声明MyDelegateAnyObject也.怎么解决这个问题?

protocols reference hashtable weak swift

33
推荐指数
3
解决办法
8128
查看次数