You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Scala并行集合map操作后原列表未更新问题咨询

问题原因与修复方案

核心问题

Scala里的map(包括并行集合的map)是纯函数式操作,它不会修改原集合,而是返回一个包含转换后元素的新集合。你的代码里只调用了map但没接收返回的新集合,所以原集合完全没变化,打印的还是初始值。

修复后的代码

import scala.collection.parallel.CollectionConverters._
object parallelpro1 extends App{
  val list = (1 to 100).toList
  // 接收map返回的新并行集合,按需转回普通List打印
  val modifiedList = list.par.map(_ + 42).toList
  println(modifiedList)
  
  val lastNames = List("Smith","Jones","Frankenstein","Bach","Jackson","Rodin").par
  // 接收转换后的新集合
  val upperCaseLastNames = lastNames.map(_.toUpperCase())
  println(upperCaseLastNames)
}

关键说明

  • 不管是普通集合还是并行集合,map、filter这类操作都不会改变原集合,必须把返回的新集合赋值给变量才能使用转换后的结果。
  • 如果不需要保留并行特性,可以用.toList或.toSeq把并行集合转回普通集合;不转也能直接打印并行集合,输出结果一致。

内容的提问来源于stack exchange,提问作者Prashant Chaudhary

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.05 01:40:27