【发布时间】:2011-08-03 14:45:07
【问题描述】:
看来Vector Scala 收藏派对迟到了,所有有影响力的博文都已经离开了。
在 Java 中,ArrayList 是默认集合 - 我可能会使用 LinkedList,但前提是我已经考虑过算法并足够注意进行优化。在 Scala 中,我应该使用Vector 作为我的默认Seq,还是尝试找出List 实际上更合适的时间?
【问题讨论】:
-
我想我在这里的意思是,在 Java 中我会创建写
List<String> l = new ArrayList<String>()Scala 博客会让你相信每个人都使用 List 来获得持久的集合优点 - 但 Vector 足够通用我们应该在 List 的地方使用它吗? -
@Debilski:我想知道你的意思是什么。当我在 REPL 输入
Seq()时,我得到一个List。 -
嗯,好吧,文档中是这么说的。也许这仅适用于
IndexedSeq。 -
关于
Seq的默认具体类型的评论已超过三年。从 Scala 2.11.4(及更早版本)开始,Seq的默认具体类型为List。 -
对于随机访问,vector 更好。对于头部、尾部访问,列表更好。对于批量操作,如 map、filter、vector 是首选,因为 vector 由 32 个元素组成一个块,而 list 用指针组织元素,不能保证这些元素彼此接近。
标签: scala vector scala-collections