簡體   English   中英

Seq-Scala中的reverseMap與reverse.map

[英]Seq - reverseMap vs reverse.map in Scala

為什么會有這個方法reverseMap在上階序列,當它出現做一樣reverse.map

一個也許比另一個更快?

對於可以有效地向后迭代的集合(例如,雙向鏈接的列表或可索引的集合), reverseMap可能會在內存效率和時間效率上更高,因為reverse是保留類型的。 即,如果在數組上調用它,它將創建該數組的副本,該副本將被反轉,然后map該數組。 (如果reverse創建反向迭代器而不是數組,則情況會有所不同。)

這需要O(n)額外的空間,並對數組進行兩次迭代。 reverseMap僅迭代一次,不需要額外的空間。

不幸的是,通常不可能將這種優化留給編譯器。 特別是,找出該reverse.mapreverseMap是相同的是在功能的問題 ,這是不可判定的一個實例。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM