gpt4 book ai didi

scala - 使用scala时Array和Buffer有什么区别?

转载 作者:行者123 更新时间:2023-12-04 17:44:05 24 4
gpt4 key购买 nike

当我使用 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会是什么样子?我真的很困惑,谢谢
帮助我

最佳答案

在 Scala 中,Array只是一个 JVM 数组,而各种 Buffer s 是实际的类。

一个 Array[String]String[] 相同在 java 。
你可以想到一个ArrayBuffer作为 ArrayList在 Java 中(它们非常相似,但不等价)和 ListBuffer作为 Java LinkedList (再次,相似,但不一样)。

但是应该注意,在您的示例中 eventbuffer不是 Buffer ,而是一个数组数组。事实上,它几乎是 myMatrix 的精确副本。 ,所以调用 toArray方法实际上是多余的。

关于scala - 使用scala时Array和Buffer有什么区别?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42573700/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com