在Scala中,ListBuffer的trimStart和trimEnd的运行时间是多少?
假设我只删除一个元素。我希望这些方法能够实现固定大小的 ListBuffer。我只会使用它们在 O(1) 时间内运行的情况。该文档有点含糊,有人知道实现细节吗?
Suppose I'm only removing a single element. I would like these methods to implement a fixed size ListBuffer. I would only use if they run in O(1) time. The documentation is slightly ambiguous does anybody know the implementation details?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
相关实现是 那里(对于
ListBuffer
) 和 那里 (对于BufferLike
)。trimStart(n)
相对于n
是线性的(因此,如果删除单个元素,则为常数);trimEnd(n)
与集合的大小呈线性关系。除此之外,我不明白您如何希望拥有一个固定大小的
ListBuffer
并使用此类trim
方法更改大小......The relevant implementation is there (for
ListBuffer
) and there (forBufferLike
).trimStart(n)
is linear with respect ton
(so, constant if you remove a single element);trimEnd(n)
is linear with respect to the size of the collection.Apart from that, I fail to see how you want to have a fixed-size
ListBuffer
on which you change the size with suchtrim
methods…