Essential Scala: Collections Redux

Sequence Implementations

Arrays and Strings

Iterators and Views

View

Seq(1, 2, 3).map(_ * 2).map(_ + 4).map(_.toString) 
// res: Seq[java.lang.String] = List(6, 8, 10)

val intermediate1 = Seq(1, 2, 3).map(_ * 2) 
val intermediate2 = intermediate1.map(_ + 4) 
val result = intermediate2.map(_.toString)

val view = Seq(1, 2, 3).view.map(_ * 2).map(_ + 4).map(_.toString)
// view: scala.collection.SeqView[java.lang.String,Seq[_]] = SeqViewMMM(...)

view.force
// res: Seq[java.lang.String] = List(6, 8, 10)

Java Interoperation

Mutable Sequences