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

如何将等长Scala Person列表映射为指定ID对应的实例?

Scala替换Person列表ID的实现方案

已知定义:

case class Person(id: Int)
val people = List(Person(4), Person(5), Person(6))
val ids = List(1, 2, 3)

要将people转换为使用ids对应位置ID的Person列表,有两种简洁的实现方式:

方式一:直接创建新Person实例

利用zip将两个列表的对应元素配对,再通过map生成新的Person对象:

val result = ids.zip(people).map { case (newId, _) => Person(newId) }

zip会把ids和people的对应元素组合成元组列表,后续map只需要取元组中的新ID来创建实例即可。

方式二:使用case class的copy方法

如果后续Person类扩展出其他字段,可通过case class自带的copy方法仅修改id字段(本例中仅id字段,效果与方式一一致):

val result = ids.zip(people).map { case (newId, person) => person.copy(id = newId) }

两种方式最终都会得到预期结果:List(Person(1), Person(2), Person(3))


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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.21 15:27:02