1
無論出於何種原因有在Performance Characteristics Doc上沒有概念,所以我挖成的來源和發現,List
和Queue
似乎有O(n)的,因爲它們迭代直通所有成員。 Vector
似乎有O(1),因爲它只是從另一個減去一個Int
。現在最佳高性能不變的序列,其長度
,不要緊集合是否爲append-或預先準備爲主,但其中一方必須是O(1),而且也沒有必要高性能apply
。
是Vector
正確的選擇?你會建議哪個?
有很少的情況下,'List'比'Vector'好。除非你有充分的理由不要,否則默認爲'Vector'。 – 2012-07-25 17:38:44
@LuigiPlinge你是否建議使用'Vector'作爲默認的'Seq'實現?這個觀點對我來說似乎至少是不尋常的,因爲鏈接列表遍佈函數式編程世界,並且是默認的集合類型。另外'Vector',作爲一個更復雜的結構,在用於'head','tail'和'prepend'操作時,不可避免地會表現得更糟。它必須佔用更多的內存。你能請參閱關於此的任何研究/討論/閱讀材料嗎? – 2012-07-25 20:44:47
另請參見[這個問題](http://stackoverflow.com/questions/6928327/when-should-i-choose-vector-in-scala) – 2012-07-25 23:30:07