在我开始编写Scala代码时,我有一个疑问:想知道Scala中的map
方法是如何工作的,它是按顺序处理还是多线程处理?更重要的是,我想知道为什么map
方法比while
或foreach
更快?
val list = List(1,2,3,45,12)
list.map(x => x)
list.foreach(x => println(x))
在我开始编写Scala代码时,我有一个疑问:想知道Scala中的map
方法是如何工作的,它是按顺序处理还是多线程处理?更重要的是,我想知道为什么map
方法比while
或foreach
更快?
val list = List(1,2,3,45,12)
list.map(x => x)
list.foreach(x => println(x))
list.map(x => x)
不是并行的,而是顺序的,但是
list.par.map(x => x)
应该是并行的。显然,这种用法需要考虑各种警告。同样的并行集合也有一个 foreach
方法。
map
比foreach
更快? - Jatinprintln
需要更多时间来执行(因为它是一个系统调用),而简单的对象创建只会触发GC(如果GC管理的堆足够大)吗? - kiritsuku