在Scala中引用“列表”的通用方法?

时间:2011-02-13 07:17:41

标签: scala

如何以更通用的方式引用ArrayBuffer和Vector?

例如 - 我的一个函数将Vector作为参数,而另一个函数返回一个ArrayBuffer。 我可以使用什么常见的“iterface”?

例如,在Java中,我可以使用列表集合界面来传递它们。

2 个答案:

答案 0 :(得分:9)

有关集合类之间的继承关系的概述,请参阅here

你会看到IndexedSeq是ArrayBuffer和Vector的共同特征。

编辑:IndexedSeq与Seq:

来自doc:Indexed sequences do not add any new methods wrt Seq, but promise efficient implementations of random access patterns.这意味着,在这种情况下,您也可以使用Seq,因为实现将由ArrayBuffer和Vector提供。

答案 1 :(得分:3)

我会使用SeqLike或更多通用TraversableOnce,这也适用于Map