In Scala, for many (all?) types of collections you can create views.
What exactly is a view and for which purposes are views useful?
In Scala, for many (all?) types of collections you can create views.
What exactly is a view and for which purposes are views useful?
See Views from Scala 2.8 Collections API.
Scala collections are by default strict in all their transformers, except for
Stream, which implements all its transformer methods lazily. However, there is a systematic way to turn every collection into a lazy one and vice versa, which is based on collection views. A view is a special kind of collection that represents some base collection, but implements all transformers lazily....
There are two reasons why you might want to consider using views. The first is performance. You have seen that by switching a collection to a view the construction of intermediate results can be avoided. These savings can be quite important.
...
The second use case applies to views over mutable sequences. Many transformer functions on such views provide a window into the original sequence that can then be used to update selectively some elements of that sequence.
view is used for lazy computation,but not for saving memory.
When you create a view against a collection, the memory has already been allocated forthe collection.
When creating the view with val view = Range(1,9).view., the collection has already been allocated the memory, if it is too large,say,Range(1,1000000000), OOM can't be avoid