Scala附加列表

问题描述 投票:0回答:1

我正在为一项任务而开始接触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)
  }

将感激帮助很多! 先谢谢你。

list scala append add
1个回答
0
投票

你是在向列表中追加一个项目,但你从来没有存储所产生的新列表。基本上,你追加一个项目,然后扔掉结果,再追加,再扔掉,以此类推。

你需要将列表存储在某个地方。

请注意,向一个列表追加是一个坏主意:你必须在整个列表中迭代以找到最后一个元素,然后下一次追加时,你必须再做一次,再做一次,再做一次。这意味着你的代码的算法复杂度为(n^2 - n)2,而同样的事情在Θ(n)中可以轻松完成。你应该总是 前言 列表,而不是追加。

© www.soinside.com 2019 - 2024. All rights reserved.