当我使用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之间有什么不同?最后,事件池会是什么样?我真的很困惑,谢谢帮助我
在Scala中,Array
只是一个JVM数组,而各种Buffer
S是实际类。
Array[String]
与Java中的String[]
相同。您可以将ArrayBuffer
视为Java中的ArrayList
(它们非常相似,但不是等效的)和ListBuffer
是Java LinkedList
(同样,相似,但不是相似)。
但是,应该注意的是,在您的示例中,eventbuffer
不是Buffer
,而是数组数组。实际上,它几乎是myMatrix
的确切副本,因此对toArray
方法的调用实际上是多余的。