如何在 collect 函数中创建 listBuffer
How to create listBuffer in collect function
我认为 List 就足够了,但我需要将元素添加到我的列表中。
我试图将其放入 ListBuffer 构造函数中,但没有结果。
var leavesValues: ListBuffer[Double] =
leaves
.collect { case leaf: Leaf => leaf.value.toDouble }
.toList
稍后我将向我的列表添加值,因此我的预期输出是可变列表。
但是如果我需要将单个值附加到 leavesValues 的末尾怎么办
- 我可以倒车,但还不够好
我可以像下面这样使用 ListBuffer,但我相信有更简洁的解决方案:
val leavesValues: ListBuffer[Double] = ListBuffer()
leavesValues.appendAll(leaves
.collect { case leaf: Leaf => leaf.value.toDouble }
.toList)
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 列表后这样做,您可以预先添加要添加到列表中的值。
我认为 List 就足够了,但我需要将元素添加到我的列表中。
我试图将其放入 ListBuffer 构造函数中,但没有结果。
var leavesValues: ListBuffer[Double] =
leaves
.collect { case leaf: Leaf => leaf.value.toDouble }
.toList
稍后我将向我的列表添加值,因此我的预期输出是可变列表。
但是如果我需要将单个值附加到 leavesValues 的末尾怎么办
- 我可以倒车,但还不够好
我可以像下面这样使用 ListBuffer,但我相信有更简洁的解决方案:
val leavesValues: ListBuffer[Double] = ListBuffer() leavesValues.appendAll(leaves .collect { case leaf: Leaf => leaf.value.toDouble } .toList)
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 列表后这样做,您可以预先添加要添加到列表中的值。