Find centralized, trusted content and collaborate around the technologies you use most.
Teams
Q&A for work
Connect and share knowledge within a single location that is structured and easy to search.
一些编程语言,如 python、Java 和 C++11,将哈希表(尽管有时使用不同的名称并具有扩展功能)作为其标准库的一部分。我想从高级算法的角度来理解已经实现了什么。具体来说:
对于 Java,
哈希函数本身是如何计算的?
它们由类本身实现int hashCode()
int hashCode()
他们使用哪些算法来解决冲突?例如,他们中的任何一个都使用简单的链接吗?
通常是简单的链接。Java 8 将支持用于字符串冲突的树。
是否使用随机性来选择散列函数?
不,除了避免 DOS 攻击的字符串元素/键。