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 не будет хорошим методом, поскольку реальная проблема, с которой я работаю, намного больше, чем в примере выше.

0 ответов

Другие вопросы по тегам