Как создать listBuffer в функции сбора
Я думал, что списка достаточно, но мне нужно добавить элемент в мой список.
Я пытался поместить это в конструктор 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)
1 ответ
Решение
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)
Вы можете сделать это следующим образом после получения списка листьев, вы можете предварительно добавить значение, которое хотите добавить в список.