【发布时间】:2011-09-02 11:43:24
【问题描述】:
在 Scala 中,列表有 reverse 方法。这种方法的复杂性是什么?是简单地使用原始列表并始终记住该列表与我们期望的相反,还是在对其进行操作之前显式使用reverse 更好。
编辑:我真正感兴趣的是获取原始列表的最后两个元素(或反向列表的前两个元素)。
所以我会这样做:
val myList = origList.reverse
val a = myList(0)
val b = myList(1)
这不是循环,只是我库中的一次性事情......但是如果其他人使用该库并将其置于循环中,则它不在我的控制之下。
【问题讨论】:
-
Is it better在没有目标、要达到的目标和具体情况的情况下是无法回答的。 -
我想知道你为什么写“永远记住列表与我们期望的相反”。您永远不必“记住”某些与预期不同的东西。这是一个等待发生的错误。因此,即使它会损害性能,您也应该按照预期顺序使用列表。这就引出了一个问题,为什么该列表与您的期望相反。也许您应该从一开始就以不同的方式创建列表,或者使用其他东西,那么您就不必反转它了。见stackoverflow.com/questions/1241166/…
-
@用户未知。我同意。我曾含蓄地假设
better意味着高效。但我真正感兴趣的是复杂性。我已经编辑了这个问题。但下面的答案可能对某人有用。 -
@Ido Tamir:我编辑了这个问题来描述我的工作。希望这能回答你的问题。我认为使用 reverse 的建议是个好主意,因为代码永远不会在循环中调用。
标签: scala