Java 变量名与哈希函数有什么关系?
a的属性:Java 变量名与哈希函数有什么关系?,java,hash,hashtable,hash-function,Java,Hash,Hashtable,Hash Function,a的属性: 满足(近似)简单一致散列的假设:每个键是相等的 可能散列到m个插槽中的任意一个 哈希函数不应偏向特定的插槽 不将类似的键散列到同一个插槽(例如,编译器的符号表不应散列 变量i和j位于同一个插槽中,因为它们经常结合使用) 快速计算,应具有O(1)运行时 是确定性的。对于给定的k,h(k)应始终返回相同的值 有人能进一步解释第二点吗。变量名与哈希函数有什么关系 编辑:我使用Java。因此,如果一个答案包含使用java语义的解释,我觉得没问题。要点建议编译器使用从变量名到该变量相关信息的映
编辑:我使用Java。因此,如果一个答案包含使用java语义的解释,我觉得没问题。要点建议编译器使用从变量名到该变量相关信息的映射,实现为哈希表
许多编译器也是如此。由于哈希表通常用于构建查找表,编译器使用这些查找表查找有关符号的信息,例如变量名和函数名,因此使用编译器场景来解释#2的要点 作者选取了一对在同一个程序中非常常见的变量名,
i
和j
,并表示表示这些变量名的字符串,“i”
和“j”
,不应散列到同一个插槽中。这是有意义的,因为解决哈希冲突是查找过程中对速度影响最大的部分