scala如何连接两个类列表

时间:2015-02-21 18:06:19

标签: list scala concatenation

我有这个班级

 case class User(var userId: Int, var userName: String, var email:      
String, var password: String) {
  def this() = this(0, "", "", "")
}

我有两个列表相同的用户类型列表  团队成员  usrList

我想将两者连接成一个团队成员。我不知道如何做到这一点,所以尝试:

 teamMembers:::usrList 
 teamMembers = teamMembers:::usrList
 teamMembers++usrList
 teamMembers = teamMembers++usrList

似乎没有任何效果。我想这一定很容易。只是难以理解scala doc。如何将它们连接成一个。

2 个答案:

答案 0 :(得分:1)

目前还不清楚你的实际问题是什么,使用非常简单:

val a = List(1,2,3)
val b = List(4,5,6)
val c = a ::: b  // List(1, 2, 3, 4, 5, 6)
val d = a ++ b   // List(1, 2, 3, 4, 5, 6)

也许你缺少的是连接会产生一个 new 列表,它是前两个的串联?或者你不能重新分配val,所以你需要分配一个新的变量名?

答案 1 :(得分:0)

考虑运营商++=将列表附加到(可变)列表;例如

case class User(var userId: Int = 0, 
                var userName: String = "", 
                var email: String = "", 
                var password: String = "")

var teamMembers = List ( User(0), User(1) )
val usrList = List( User(3) )

我们有那个

teamMembers ++= usrList

等等

teamMembers
List[User] = List(User(0,,,), User(1,,,), User(3,,,))

另一种方法涉及

teamMembers = List(teamMembers, usrList).flatten

即,我们创建一个列表列表并将它们展平到列表中。