2012-03-12 9 views

答えて

14

あなたは正しいタイプで正しいものを与え

Vector() ++ myIterator 

をすることができます。非常に小さなベクトルとイテレータのために、高性能なループでは、あなたの代わりにベクトルを作成するために、(私の知る限りでは)必要最低限​​の作業を行う

val b = Vector.newBuilder[WhateverType] 
while (myIterator.hasNext) { b += myIterator.next } 
b.result 

に望むことができます。 toIndexedSeqこれは、本質的に行いますが、より一般的なタイプが返されます(あなたが実際にそれが今Vectorを返さない場合でも、Vectorを保証していない。)

6

toIndexedSeqを使用できます。それは静的にVectorを返しませんが、実際には1つです。

+3

OPは実際にはインデックス付きシーケンスを必要としているだけで、必ずしも「Vector」である必要はありません。 –

+0

あなたは正しいです。私は一定時間ランダムアクセスと長さの計算が必要です。 – Ralph

1

それがないすべてに合格しているので、あなた_*を使用することができますすべての引数を持つSeq。しかし、最初はイテレータをシーケンスに変換し、そのシーケンスを使用しての別のシーケンスを作成するため、効率が悪くなります。

関連する問題