Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/performance/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Performance 在Scala中不复制的情况下前置到mutable.LinkedList_Performance_List_Scala - Fatal编程技术网

Performance 在Scala中不复制的情况下前置到mutable.LinkedList

Performance 在Scala中不复制的情况下前置到mutable.LinkedList,performance,list,scala,Performance,List,Scala,我需要很快建立一个列表。 我的想法是使用一个mutable.LinkedList并通过预编来增长。 但是,我只找到了运算符+:用于预结束,它生成 列表的副本,这是令人惊讶的,因为列表是可变的 有没有一种方法可以预先编写并修改列表?快速浏览一下,我想这就是您应该如何使用它: val newList = new LinkedList(newElem, existingList) 请注意,它在Scala 2.11中已被弃用,将来可能会被删除。一种可能提供所需性能的方法是通过追加来建立列表,然后在结果

我需要很快建立一个列表。 我的想法是使用一个mutable.LinkedList并通过预编来增长。 但是,我只找到了运算符+:用于预结束,它生成 列表的副本,这是令人惊讶的,因为列表是可变的


有没有一种方法可以预先编写并修改列表?

快速浏览一下,我想这就是您应该如何使用它:

val newList = new LinkedList(newElem, existingList)

请注意,它在Scala 2.11中已被弃用,将来可能会被删除。

一种可能提供所需性能的方法是通过追加来建立列表,然后在结果完全填充后简单地调用
reverse()
。@Andrzej追加速度很慢。就我对scala文档的理解而言,没有适当的预处理方法,但可能我遗漏了一些东西。不必要的复制不利于性能。这也意味着复制。LinkedList似乎不是合适的容器,但ListBuffer可能是要使用的容器。可变链接列表包含一个元素和其他元素,因此prepend非常便宜,不涉及复制,您可以在此处亲自查看其来源:OK。我错误地认为,新的自动意味着复制。谢谢