2012-08-15 70 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]