我知道普通的可变映射表是如何工作的(使用哈希表),我也知道不可变的列表是如何工作的(递归链接列表),以及它们相对于可变列表的优势(在不破坏原始列表的情况下常数时间附加),但是不可变的映射表(例如Scala)是如何工作的?
我知道在生成新映射表时不破坏原始映射表的优点,但底层数据结构是如何工作的,它们有哪些性能特征,例如与可变哈希表相比?人们使用哪种标准数据结构来实现这些数据结构,我可以在CLRS /维基百科上查找吗?
我知道普通的可变映射表是如何工作的(使用哈希表),我也知道不可变的列表是如何工作的(递归链接列表),以及它们相对于可变列表的优势(在不破坏原始列表的情况下常数时间附加),但是不可变的映射表(例如Scala)是如何工作的?
我知道在生成新映射表时不破坏原始映射表的优点,但底层数据结构是如何工作的,它们有哪些性能特征,例如与可变哈希表相比?人们使用哪种标准数据结构来实现这些数据结构,我可以在CLRS /维基百科上查找吗?
它可以是一棵树(红黑树)或哈希映射。它们的访问特性取决于底层实现。对于读取访问,树的时间复杂度为O(log n);哈希映射的时间复杂度为O(1)。