Как создать listBuffer в функции сбора - PullRequest
0 голосов
/ 04 января 2019

Я подумал, что List достаточно, но мне нужно добавить элемент в мой список.

Я пытался поместить это в конструктор ListBuffer, но безрезультатно.

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

ПозжеЯ собираюсь добавить значение в свой список, чтобы мой ожидаемый результат был изменяемым списком.

Решение Рамана Мишры

Но что, если мне нужно добавить одно значение кконец листьевЗначения

  1. Я могу повернуть вспять, но это недостаточно хорошо
  2. Я могу использовать ListBuffer, как показано ниже, но я считаю, что есть более чистое решение:

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

1 Ответ

0 голосов
/ 04 января 2019
  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)

вы можете сделать это так, получив список листьев, вы можете предварительно добавить значение, которое вы хотите добавить в список.

...