Scala добавляемый список - PullRequest
0 голосов
/ 06 мая 2020

Я начинаю попадать в Scala для задания, и я уже около часа искал, как добавить элемент в список. Я, конечно, нашел несколько решений, и приведенный ниже код ДЕЙСТВИТЕЛЬНО компилируется, НО созданный список просто пуст. Может ли кто-нибудь сказать мне, почему это так?

  case NodeList(ls) => {
      var ls0 = List()
      ls.foreach {
        println("hey") // => printed 3 times
        i => ls0 :+ i
      }

      println(ls0) // => Empty list as output (ls contains 3 items when called)
  }

Был бы признателен за помощь! Заранее спасибо.

1 Ответ

0 голосов
/ 06 мая 2020

Вы добавляете элемент в список, но никогда не сохраняете полученный новый список. Обычно вы добавляете элемент, затем отбрасываете результат, снова добавляете, снова отбрасываете и т. Д.

Вам нужно где-то сохранить список.

Обратите внимание, что добавление к списку - плохая идея: вам нужно перебрать весь список, чтобы найти последний элемент, а затем в следующий раз, когда вы добавите, вам придется делать это снова, и снова, и снова. Это означает, что ваш код имеет алгоритмическую c сложность (n ^ 2 - n) / 2, тогда как то же самое можно легко сделать в in (n). Вы всегда должны добавлять к списку, но никогда не добавлять.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...