scala - What is the difference between the methods iterator and view? -


scala> (1 10).iterator.map{_ * 2}.tolist res1: list[int] = list(2, 4, 6, 8, 10, 12, 14, 16, 18, 20)  scala> (1 10).view.map{_ * 2}.force res2: seq[int] = vector(2, 4, 6, 8, 10, 12, 14, 16, 18, 20) 

other using next,hasnext, when should choose iterator on view or view on iterator?

there's huge difference between iterators , views. iterators use once only, compute on demand, while views use multiple times, recompute each time, elements needed. instance:

scala> val list = list(1,2,3).map{x => println(x); x * 2} 1 2 3 list: list[int] = list(2, 4, 6)  scala> list(2) res14: int = 6  scala> list(2) res15: int = 6  scala> val view = list(1,2,3).view.map{x => println(x); x * 2} view: scala.collection.seqview[int,seq[_]] = seqviewm(...)  scala> view(2) 3 res12: int = 6  scala> view(2) 3 res13: int = 6  scala> val iterator = list(1,2,3).iterator.map{x => println(x); x * 2} iterator: iterator[int] = non-empty iterator  scala> iterator.drop(2).next 1 2 3 res16: int = 6  scala> iterator.drop(2).next [iterator.next] (iterator.scala:29) (access lastexception full trace) 

Comments

Popular posts from this blog

java - SNMP4J General Variable Binding Error -

windows - Python Service Installation - "Could not find PythonClass entry" -

Determine if a XmlNode is empty or null in C#? -