迭代不可变的Seq,Vector和List:有什么不同吗?

时间:2013-02-26 08:51:06

标签: scala

Scala提供了这么多收藏......我不确定使用哪一个。

我的函数会生成一组预定义数量的元素,这些元素将按原始顺序逐个迭代。

所有不可变的VectorSeqList都支持迭代,但我应该使用哪一个?

1 个答案:

答案 0 :(得分:0)

您正在寻找维护订单的系列。任何扩展seq的集合都会维护元素的添加顺序。

[scaladocs] Sequences have two principal subtraits, IndexedSeq and LinearSeq, which give different guarantees for performance. An IndexedSeq provides fast random-access of elements and a fast length operation. A LinearSeq provides fast access only to the first element via head, but also has a fast tail operation

List延伸LinearSeq,而Vector延伸IndexedSeq

在这些选项之间进行选择取决于您希望如何访问数据以及您希望对数据执行的操作。