请在 2024 Clojure 状况调查! 中分享您的想法。

欢迎!请访问 关于 页面获取更多关于这个网站如何工作的信息。

+1
Collections

在我看来,https://ask.clojure.org/index.php/12073/update-vals-not-preserving-sorted-maps 是一个问题的原因,是因为 PersistentTreeMap 没有实现 IEditableCollection

所以为了满足我的好奇心,这是为什么?

1 答案

0

选中
 
最佳答案

PTM(有序映射)是用红黑树实现的。临时数据(IEditableCollection)需要一种方法在持久化和临时之间以 O(1) 速度切换,并在临时批量更新期间以比 O(n log n) 更快的速度(平均而言)收集值。

这早于我加入 Clojure 团队的时候,但我想 PTM 红黑树实现可能无法提供这些性能保证。或者也许可能提供,但是因为太难而值得做。我假设是前者(由于平衡),但无法确定。

...