Scala Concatenate ListBuffer类元素的内容

时间:2015-07-21 14:40:50

标签: scala concatenation listbuffer

我正在尝试将两个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),而不是将Example1Example2类的实际元素组合在一起。

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

0 个答案:

没有答案