我正在尝试将两个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)
,而不是将Example1
和Example2
类的实际元素组合在一起。
有没有办法可以从每个ListBuffer
中提取元素,将每个元素添加到新的ListBuffer
?通过b1(0).name
等将每个元素单独拉入新的ListBuffer
将不是一个好方法,因为我正在处理的实际问题比上面的例子大得多。