我正在尝试将两个元素合并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
并不是一个好方法,因为我正在处理的真正问题比上面的示例要大得多。