Scala中map和foreach方法的区别?
发布时间:2020-12-16 09:26:17 所属栏目:安全 来源:网络整理
导读:参见英文答案 Is there a difference between foreach and map?????????????????????????????????????8个 当我开始编写Scala时,我确实有一个很大的疑问.我想知道scala中的map方法是如何工作的.是顺序处理还是多线程处理?更重要的是,我想知道为什么map方法比
参见英文答案 >
Is there a difference between foreach and map?????????????????????????????????????8个
当我开始编写Scala时,我确实有一个很大的疑问.我想知道scala中的map方法是如何工作的.是顺序处理还是多线程处理?更重要的是,我想知道为什么map方法比while或foreach更快? val list = List(1,2,3,45,12) list.map(x => x) list.foreach(x => println(x)) 解决方法
首先,这两个操作是无限不同的. map是给定函数A =>的列表的变换. B,而foreach产生单位,通常用于副作用.
我猜想,与map相比,foreach在执行所需的周期方面“更快”,因为map创建了一个新的集合(在这种情况下)作为函数的结果.但比较这两者实际上是在比较苹果和橘子. 如果调用它的集合是并行集合,则map将只是并行的.所以在你的例子中: list.map(x => x) 不是平行的并且是顺序的,但是 list.par.map(x => x) 会平行的.这种用法显然需要考虑各种警告.同一个并行集合也有一个foreach方法. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |