如果要使用不可变结构,可以使用以下方法:
scala> val orgList = List(1,2,3)
orgList: List[Int] = List(1, 2, 3)
scala> val list2Add = List(4,5,6)
list2Add: List[Int] = List(4, 5, 6)
scala> val newList = orgList ++ list2Add
newList: List[Int] = List(1, 2, 3, 4, 5, 6)
如果你想对元素做更多的工作,而不仅仅是添加它们,你可以使用更高阶的函数:
val newList = orgList ++ list2Add.map(_ * 2)
newList: List[Int] = List(1, 2, 3, 8, 10, 12)
或者使用for循环:
val newList = orgList ++ {for(x
或者你可以创建一些递归循环:
def addAll(toList: List[Int], fromList: List[Int]): List[Int] =
fromList match {
case x :: tail => addAll(2*x :: toList, tail)
case Nil => toList
}
val newList = addAll(orgList, list2Add )
但在这种情况下,添加元素的顺序将颠倒过来:
List(12, 10, 8, 1, 2, 3)
如果在使用列表时需要性能,最好反转结果而不是尝试最后添加新元素 . 最后在列表中添加元素是好的:-)