如何制作ArrayBuffer的ArrayBuffer

Koa*_*la3 2 collections scala

我想要一个ArrayBuffer的二维数组

像这样的东西:

var myRowOfStrings = new ArrayBuffer[String]
val myArrayOfRows = new ArrayBuffer[ArrayBuffer] // To store many ArrayBuffer[String]
Run Code Online (Sandbox Code Playgroud)

但是Scala编译器不喜欢第二个声明:

scala> val myArrayOfRows = new ArrayBuffer[ArrayBuffer]
<console>:8: error: class ArrayBuffer takes type parameters
       val myArrayOfRows = new ArrayBuffer[ArrayBuffer]
                                       ^
Run Code Online (Sandbox Code Playgroud)

我的语法错了吗?

或者是ArrayBuffer的ArrayBuffer不可能?

Kyl*_*yle 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()
Run Code Online (Sandbox Code Playgroud)

如果它更容易,请考虑这样做.

type Row = ArrayBuffer[String]
var myRowOfStrings = new Row
val myArrayOfRows = new ArrayBuffer[Row]
Run Code Online (Sandbox Code Playgroud)