gpt4 book ai didi

hash - Clojure映射限制和一致性

转载 作者:行者123 更新时间:2023-12-04 13:53:01 25 4
gpt4 key购买 nike

我想知道,考虑到Clojure映射使用32位哈希,如果Clojure映射因此限制为2 ^ 32-1个键(如果不正确,则它如何管理冲突)以及其哈希实现是consistent
TIA!

最佳答案

Clojure映射是一种自定义实现,具有持久性和不可变(即,它不使用Java哈希图,当在不可变数据结构中使用Java哈希图时将无法提供足够的性能)。

它使用32位哈希码,因此 2 ^ 32可能的哈希存储桶。在发生冲突的情况下,每个哈希桶的键和值都存储在数组中,因此可能具有2 ^ 32个以上的键。请参阅PersistentHashMap source-特别是HashCollisionNode内部类用于针对单个哈希码值存储键/值的存储桶。

由于可能的哈希存储桶的数量是固定的,因此一致的哈希是无关紧要的-永远不需要重新映射 key 。

也可以看看:

  • http://www.infoq.com/presentations/Value-Identity-State-Rich-Hickey(该演示文稿解释了Clojure并发方法,但也涵盖了持久不变数据结构)
  • 关于hash - Clojure映射限制和一致性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11082916/

    25 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com