用于测量长度的最佳性能不可变Seq

时间:2012-07-25 12:58:39

标签: scala immutability scala-collections

无论出于何种原因,在Performance Characteristics Doc中都没有关于此的概念,所以我挖掘了来源并发现ListQueue似乎有 O(n) ,因为他们通过所有成员进行迭代。 Vector似乎有 O(1),因为它只是从另一个中减去一个Int

现在,无论集合是追加还是前置,都无关紧要,但其中任何一个都必须是 O(1),并且不需要高性能{{1} }。

apply是正确的选择吗?你会建议哪个?

1 个答案:

答案 0 :(得分:5)

  

Vector是正确的选择吗?

是。另一种方法是在List周围创建自己的不可变包装器,将其大小添加为常量,但如果要允许所有标准收集操作,那将是很多工作。坚持Vector