【问题标题】:Why are insertions into ListMap O(n)?为什么插入 ListMap O(n)?
【发布时间】:2021-09-09 21:35:03
【问题描述】:

根据 scala 文档,insertions into the ListMap are O(n)

其他操作,例如插入或删除条目,也是 O(n),这使得这个集合只适用于少数元素。

插入链表的头部不应该是 O(1) 吗?为什么插入是 O(n)?

【问题讨论】:

    标签: scala scala-collections


    【解决方案1】:

    当你向非空的ListMap 添加元素时,会调用ListMap.Nodeupdated 方法。在最坏的情况下,它会扫描整个集合以检查密钥是否已经存在(正如您在评论中建议的那样): https://github.com/scala/scala/blob/8a2cf63ee5bad8c8c054f76464de0e10226516a0/src/library/scala/collection/immutable/ListMap.scala#L173

    【讨论】:

      猜你喜欢
      • 2019-10-23
      • 2013-06-26
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-09-13
      • 2012-01-03
      相关资源
      最近更新 更多