我有一个不变的序列。我需要从中创建一个新的seq,只改变一个元素,它的索引被提供给我。我该怎么做(我认为由于序列是不可变的,我需要使用一些函数并创建一个新的输出序列,但是我不知道如何在“map”函数中检查条件更新的索引。)谢谢
11dmarpk1#
如果元素必须用某种函数进行变换 f 然后
f
val idx = 2 // given index to transform mySeq.iterator.zipWithIndex.map { case (e, `idx`) => f(e) case (e, _) => e }.toSeq
如果只需要用另一个给定的元素替换它,那么
mySeq.updated(idx, newElement)
如果集合将经常更新,那么请考虑 Vector 而是因为 List 这是 Seq 未针对更新进行优化。
Vector
List
Seq
1条答案
按热度按时间11dmarpk1#
如果元素必须用某种函数进行变换
f
然后如果只需要用另一个给定的元素替换它,那么
如果集合将经常更新,那么请考虑
Vector
而是因为List
这是Seq
未针对更新进行优化。