1

我正在尝试将两个元素合并ListBuffers为一个ListBuffer。对于标准ListBuffers,我知道您可以使用它++来完成此操作,但是ListBuffer包含一个类作为其元素。

例如:

class ExampleBuffer {
  var exBuff = new ListBuffer[Example]
}

class Example (
  var name: String = null, 
  var age: Option[Int] = None, 
  var yob: Option[Int] = None, 
  var gender: Option[String] = None
)

val e1 = new Example
val e2 = new Example

e1.name = "Jack"
e1.age = Some(25)
e2.yob = Some(1990)
e2.gender = Some("m")

val b1 = ListBuffer(e1)
val b2 = ListBuffer(e2)
val b3 = b1 ++ b2

所以:

b1 = scala.collection.mutable.ListBuffer[Example] = ListBuffer(Example@4a60ee36)
b2 = scala.collection.mutable.ListBuffer[Example] = ListBuffer(Example@4d33940d)
b3 = scala.collection.mutable.ListBuffer[Example] = ListBuffer(Example@4a60ee36, Example@4d33940d)

我想将两者结合起来以包含所有四个元素,然后稍后从该缓冲区中提取。问题是,当我尝试连接 时ListBuffers,我只剩下ListBuffer(Example@4a60ee36, Example@4d33940d),而不是组合 classExample1和的实际元素Example2

有没有一种方法可以从每个元素中提取元素ListBuffer以将每个元素添加到新元素中ListBuffer?但是,将每个元素单独拉b1(0).name入一个新的元素ListBuffer并不是一个好方法,因为我正在处理的真正问题比上面的示例要大得多。

4

0 回答 0