繁体   English   中英

Scala 附表

[英]Scala appending List

我开始进入 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)
  }

非常感谢帮助。 提前致谢。

您将一个项目附加到列表中,但您从不存储生成的新列表。 基本上,你 append 一个项目,然后扔掉结果,再 append,再扔掉,以此类推。

您需要将列表存储在某处。

请注意,附加到列表是一个坏主意:您必须遍历整个列表以找到最后一个元素,然后下次您 append 时,您必须一次又一次地这样做。 这意味着您的代码具有 (n^2 - n)/2 的算法复杂度,而在 Θ(n) 中可以轻松完成相同的操作。 您应该始终将其添加到列表中,而不是append

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM