【发布时间】:2017-04-26 17:10:17
【问题描述】:
我需要一个在预附加和返回第一个元素时高效的集合。堆栈很好地完成了这项工作。
现在,堆栈的对象也是一个集合。假设它是一个列表。所以我有一堆列表。
我的问题如下: 如果我想将一个元素附加到堆栈头部的列表中,我唯一的选择是:弹出头部,将元素添加到列表中并推送新列表? 高效明智,所有时间都是不变的,对吗?
【问题讨论】:
标签: performance scala collections stack
我需要一个在预附加和返回第一个元素时高效的集合。堆栈很好地完成了这项工作。
现在,堆栈的对象也是一个集合。假设它是一个列表。所以我有一堆列表。
我的问题如下: 如果我想将一个元素附加到堆栈头部的列表中,我唯一的选择是:弹出头部,将元素添加到列表中并推送新列表? 高效明智,所有时间都是不变的,对吗?
【问题讨论】:
标签: performance scala collections stack
如果您使用的是不可变集合,则您要添加的列表和外部堆栈(或列表)也将是新的,因此没关系。 Still 列表在 prepend 和 head 操作中很有效(您可以查看文档以获取 Collection - performance characteristics 以获取有关操作成本的详细信息)
【讨论】: