迭代的一側我想僅除去少數最後的元件的List
(或Seq
),和避免解析所有元件(以及避免應用所述濾波函數到所有的他們)。濾波只列表/在階
比方說,例如,我有值的隨機嚴格遞增列表:
import scala.util.Random.nextInt
val r = (1 to 100).map(_ => nextInt(10)+1).scanLeft(0)(_+_)
而且我想刪除的元素大於,比如說,300我能做到這樣的:
r.filter(_<300)
但這種方法解析整個列表。那麼,是否有可能僅在一端過濾列表?像filterRight
方法的東西?
子問題:
- 此外,將它的值列表不嚴格增加可能嗎?即刪除從列表的末尾元素,直到一個元素,比如說,低於300
- ,如果它是不可能的
List
/Seq
,那IndexedSeq
像Vector
或Array
解決方案
我選擇了@elm解決方案,因爲它回答了一般列表的子問題,而不僅僅是(嚴格)增加的。 然而,@dcastro的解決方案看起來更加有效,因爲它不會做2個倒檔