2012-08-15 71 views
2

的ArrayBuffer我想ArrayBuffer的二維數組如何使ArrayBuffer

事情是這樣的:

var myRowOfStrings = new ArrayBuffer[String] 
val myArrayOfRows = new ArrayBuffer[ArrayBuffer] // To store many ArrayBuffer[String] 

但Scala編譯器不喜歡第二個聲明:

scala> val myArrayOfRows = new ArrayBuffer[ArrayBuffer] 
<console>:8: error: class ArrayBuffer takes type parameters 
     val myArrayOfRows = new ArrayBuffer[ArrayBuffer] 
            ^

我的語法錯了嗎?

或者是ArrayBuffer的ArrayBuffer不可能?

回答

11

ArrayBuffer對象需要一個類型。它在錯誤信息中是這樣說的。

你需要告訴編譯器你想要什麼類型的ArrayBuffer

scala> import scala.collection.mutable.ArrayBuffer 
import scala.collection.mutable.ArrayBuffer 

scala> val myArrayOfRows = new ArrayBuffer[ArrayBuffer[String]] 
myArrayOfRows: scala.collection.mutable.ArrayBuffer[scala.collection.mutable.ArrayBuffer[String]] = ArrayBuffer() 

考慮這樣做,如果它更容易。

type Row = ArrayBuffer[String] 
var myRowOfStrings = new Row 
val myArrayOfRows = new ArrayBuffer[Row]