gpt4 book ai didi

scala - 不可变映射使用什么样的数据结构?

转载 作者:行者123 更新时间:2023-12-03 20:25:59 28 4
gpt4 key购买 nike

我知道普通的可变映射是如何工作的(使用哈希表),我知道不可变列表是如何工作的(递归链表)以及它们相对于可变列表的优势(恒定时间附加而不弄乱原始)但是不可变映射(例如 Scala 的)是如何工作的?

我知道在生成新 map 时不会弄乱原始 map 的优势,但是底层数据结构如何工作,以及它们具有什么样的性能特征,例如与可变哈希表相比?有没有人们用来实现这些的标准数据结构,我可以在 CLRS/wikipedia 中查找?

最佳答案

持久哈希映射是使用名为 的结构实现的。 Hash trie .它是 originally proposed by Phil Bagwell (他是 EPFL Scala 组的成员)但实际上首先由 Clojure 实现。当 时它击中了 scala 2.8 2010年问世。

有一个great talk on functional data structures由 Dan Spiewak 撰写,其中对哈希树的机制进行了非常清晰的解释(以及其他内容,例如银行家的队列)!他还在演讲中很好地解释了渐近大 O 性能。

去年 10 月,Phil 在 London scala Lift Off 上又做了一次演讲。 ,这次是在并行持久数据结构上。

持久排序映射是通过 Red-Black tree 实现的

关于scala - 不可变映射使用什么样的数据结构?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9054561/

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