[英]Seq - reverseMap vs reverse.map in Scala
為什么會有這個方法reverseMap
在上階序列,當它出現做一樣reverse.map
?
一個也許比另一個更快?
對於可以有效地向后迭代的集合(例如,雙向鏈接的列表或可索引的集合), reverseMap
可能會在內存效率和時間效率上更高,因為reverse
是保留類型的。 即,如果在數組上調用它,它將創建該數組的副本,該副本將被反轉,然后map
該數組。 (如果reverse
創建反向迭代器而不是數組,則情況會有所不同。)
這需要O(n)額外的空間,並對數組進行兩次迭代。 而reverseMap
僅迭代一次,不需要額外的空間。
不幸的是,通常不可能將這種優化留給編譯器。 特別是,找出該reverse.map
和reverseMap
是相同的是在功能的問題 ,這是不可判定的一個實例。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.