12得票4回答
Java中是否有一种HashMap实现不会产生垃圾?

我注意到在我的高性能系统上使用 java.util.HashMap 会为GC产生垃圾,基本上是从网络中读取的选择器。是否有另一种替代方法可以使用(即不需要实现java.util.Map,换句话说,它可以拥有自己的API),并且不会留下垃圾? 垃圾 = 超出范围且需要由GC收集的对象。 ...

72得票10回答
二叉树 vs. 链表 vs. 哈希表

我正在为我的项目构建一个符号表。我想知道人们对于存储和创建符号表的不同方法的优缺点有什么看法。 我已经做了很多搜索,最常被推荐的是二叉树、链表或哈希表。这些方法各自有什么优劣呢?(使用C++)

28得票3回答
如何在C语言中编写哈希函数?

哈希表被称为存储和检索数据的最快/最佳方式。 我对哈希表和散列的理解如下(如果我错了,请纠正我,如果有更多内容,请添加): 哈希表只是一个数组(单维或多维)用于存储值。 散列是查找数组中插入/检索数据的索引/位置的过程。将数据项作为键传递给哈希函数,就可以得到要插入/检索数据的索引/位置...

173得票11回答
字符串的哈希函数

我正在使用C语言实现哈希表,并测试字符串的哈希函数。 首先,我尝试了将ASCII码相加并使用模运算(% 100),但是在第一组包含130个单词的数据测试中,结果很差:40个冲突。 最终输入的数据将包含8000个单词(这是一个存储在文件中的字典)。哈希表声明为int table[10000],其...

29得票4回答
哈希表中创建字符串哈希值的时间复杂度

通常来说,向哈希表中插入和查找字符串的时间复杂度为O(1)。但是字符串的哈希键是如何生成的呢?为什么不认为它是O(L),其中L是字符串的长度? 我知道为什么对于整数来说,哈希取值的时间复杂度是O(1),但是对于字符串来说却不是。 此外,在Java和C++的unordered_map中,生成...

10得票4回答
源IP和目标IP + 端口的哈希函数

所以,我正在寻找不同的哈希函数来对4元组IP和端口进行哈希,以识别流量。 我发现其中一个是 ((size_t)(key.src.s_addr) * 59) ^ ((size_t)(key.dst.s_addr)) ^ ((size_t)(key.sport) << 16) ^ (...

7得票4回答
HashSet/HashMap(自定义哈希函数)的TreeSet/TreeMap等价物

TreeSet有一个接受比较器(comparator)的构造函数,这意味着即使您存储的对象本身不是可比较(Comparable)对象,您也可以提供一个自定义比较器。 是否存在无序集合的类似实现?(例如 HashSet<T> 的替代品,它接受一个“哈希器”对象,用于计算T对象的eq...

38得票4回答
为什么由不同初始化集合构建的元组是相等的?

我期望以下两个元组>>> x = tuple(set([1, "a", "b", "c", "z", "f"])) >>> y = tuple(set(["a", "b", "c", "z", "f", 1])) 相比较而言,它们并不相等:>>&...

192得票14回答
字符串的好哈希函数

我正在思考一种好的字符串哈希函数,我的想法是将字符串中前五个字符(如果有五个的话)的Unicode值相加,这样做是否可行呢?或者说这个想法不太好吗? 我用的是Java语言实现,但我觉得这应该不会有太大的区别。

10得票6回答
加盐:使用用户名是否合理?

我正在考虑使用用户名作为盐来加密密码,而不是存储随机字符串和用户名。我的理由是,盐的目的是防止彩虹表攻击,那么这样做相比于在其中添加另一组数据更不安全的现实意义是什么? 例如, hash(md5(johnny_381@example.com), p4ss\/\/0rD) 与 hash(...