scala 如何连接 class 的两个列表

scala how to concatenate two list of class

我有这个class

 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 文档。如何将它们连接成一个。

不清楚你的问题到底是什么,用法很简单:

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 列表,它是前两个列表的串联?或者你不能重新分配 vals 所以你需要分配一个新的变量名?

考虑用于将列表附加到(可变)列表的运算符 ++=;例如

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

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