如何在collect函数中创建listBuffer

时间:2019-01-04 07:26:30

标签: scala collect listbuffer

我坚信列表足够了,但是我需要在列表中添加元素。

我试图将其放入ListBuffer构造函数中,但没有结果。

  var leavesValues: ListBuffer[Double] =
    leaves
      .collect { case leaf: Leaf => leaf.value.toDouble }
      .toList

稍后,我将为列表添加价值,以便我的预期输出是可变列表。

Solution of Raman Mishra

但是如果我需要将单个值附加到leavesValues的末尾

,该怎么办?
  1. 我可以扭转,但还不够
  2. 我可以像下面那样使用ListBuffer,但我相信有更清洁的解决方案:

    val leavesValues: ListBuffer[Double] = ListBuffer()
    leavesValues.appendAll(leaves
      .collect { case leaf: Leaf => leaf.value.toDouble }
      .toList)
    

1 个答案:

答案 0 :(得分:2)

  case class Leaf(value:String)

  val leaves = List(Leaf("5"), Leaf("6"), Leaf("7"), Leaf("8") ,Leaf("9") )

  val leavesValues: List[Double] =
    leaves
      .collect { case leaf: Leaf => leaf.value.toDouble }

  val value = Leaf("10").value.toDouble

  val answer = value :: leavesValues

  println(answer)

在获取leavesValues列表后,您可以执行以下操作:将要添加的值预添加到列表中。