当我使用scala处理某些任务时,我写了一些代码如下:
object He {
def main(args: Array[String]): Unit = {
var myMatrix = Array.ofDim[String](3,3)
// build a matrix
for (i <- 0 to 1) {
for ( j <- 0 to 1) {
myMatrix(i)(j) = "faf";
}
}
var eventbuffer = for(i <- myMatrix) yield for(j <- i) yield j
var eventArray = for(i <- eventbuffer) yield i.toArray
var eventpool:Array[(String, Array[String])] = eventArray.toArray.map(son => (son(0), son))
}
}
我想问一下问题,eventbuffer和eventArray之间的区别是什么?最后,eventpool会是什么样的?我真的很困惑,谢谢 帮助我
答案 0 :(得分:8)
在Scala中,Array
只是一个JVM数组,而各种Buffer
是实际的类。
Array[String]
与Java中的String[]
相同。
您可以将ArrayBuffer
视为Java中的ArrayList
(它们非常相似,但不相同),将ListBuffer
视为Java LinkedList
(同样,类似) ,但不一样)。
然而,应该注意,在您的示例中eventbuffer
不是Buffer
,而是数组数组。实际上它几乎是myMatrix
的精确副本,因此调用toArray
方法实际上是多余的。