高效的不可变地图实施?

Phi*_*hil 10 performance functional-programming map immutability

我想知道是否有一个地图的实现是:

  • 不可变,因此我可以在函数式编程中使用它,并毫不费力地确保事务和并发.
  • .我已经检查了二进制搜索树(RB,AVL)和Tries,但它们似乎都没有哈希表那么快.是否有支持更新和检索的固定时间的地图实现?(或至少非常快的对数时间)

简而言之,是否存在可以与Hash Maps进行性能比较的功能数据结构?

Vij*_*hew 4

Clojure 具有不可变的映射。(关联)。不确定它使用的底层数据结构是什么。Clojure源代码将为您提供更多信息!

  • Clojure 的不可变映射使用 32 路哈希数组映射尝试 (http://en.wikipedia.org/wiki/Hash_array_mapped_trie)。它们是一种很棒的数据结构 - 几乎与可变 HashMap 一样快,但具有持久性和不可变性的所有优点。 (2认同)