Scala Concatenate 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)
вместо того, чтобы объединять фактические элементы класса Example1
а также Example2
,
Есть ли способ, которым я могу извлечь элементы из каждого ListBuffer
добавить каждый элемент в новый ListBuffer
? Потянув каждый элемент в отдельности, хотя b1(0).name
и т. д. в новый ListBuffer
не будет хорошим методом, поскольку реальная проблема, с которой я работаю, намного больше, чем в примере выше.