mik*_*era 11
Clojure映射是一种持久且不可变的自定义实现(即它不使用Java哈希映射,当在不可变数据结构中使用时,它不能提供足够的性能).
它使用32位哈希码,因此有2 ^ 32个可能的哈希桶.在冲突的情况下,键和值存储在每个哈希桶的数组中,因此可以有超过2 ^ 32个键.请参阅PersistentHashMap源 - 特别是HashCollisionNode内部类用于存储针对单个哈希码值的一桶键/值.
由于可能的散列桶的数量是固定的,因此一致的散列是无关紧要的 - 密钥永远不需要重新映射.
也可以看看: