2013-12-23 48 views
2

什麼是使用SeqView超過Stream的用例?Stream v。SeqView

scala> List(1,2).view 
res34: scala.collection.SeqView[Int,List[Int]] = SeqView(...) 

scala> List(1,2).view.toStream 
res33: scala.collection.immutable.Stream[Int] = Stream(1, ?) 

或許,如果你需要訪問Stream的中間,它是昂貴的訪問Stream元素,那麼你應該使用SeqView

+0

這幾乎是這個問題的重複:http://stackoverflow.com/questions/5159000/stream-vs-views-vs-iterators – wheaties

+0

另請參閱:http://stackoverflow.com/questions/4798043/what -is-the-difference-between-the-methods-iterator-and-view和http://stackoverflow.com/questions/3361478/what-are-views-for-collections-and-when-would-you-want -to-use-them – wheaties

+0

謝謝 - 我將刪除此問題 –

回答

2

SeqView並不比Stream便宜。實際上,訪問SeqView中的元素的成本要高於Stream,因爲Stream將其計算的結果緩存起來,而不是SeqView(或任何其他View)。