listscalalistbuffer

How to convert List to ListBuffer?


Is there any way to efficiently do this, perhaps through toBuffer or to methods? My real problem is I'm building a List off a parser, as follows:

lazy val nodes: Parser[List[Node]] = phrase(( nodeA | nodeB | nodeC).*)

But after building it, I want it to be a buffer instead - I'm just not sure how to build a buffer straight from the parser.


Solution

  • to indeed does the trick, and it is pretty trivial to use:

    scala> val l = List(1,2,3)
    l: List[Int] = List(1, 2, 3)
    scala> l.to[ListBuffer]
    res1: scala.collection.mutable.ListBuffer[Int] = ListBuffer(1, 2, 3)
    

    Works in scala 2.10.x

    For scala 2.9.x, you can do:

    scala> ListBuffer.empty ++= l
    res1: scala.collection.mutable.ListBuffer[Int] = ListBuffer(1, 2, 3)