[英]Create SortedMap from Iterator in scala
我有一個值val it:Iterator[(A,B)]
,我想用從Iterator
得到的元素創建SortedMap[A,B]
。 我現在的方式是:
val map = SortedMap[A,B]() ++ it
它工作正常,但使用起來有點尷尬。 我檢查了SortedMap
文檔,但找不到更優雅的東西。 是否有類似的東西:
it.toSortedMap
要么
SortedMap.from(it)
在我可能錯過的標准Scala庫中?
編輯 :混合兩個想法從@Rex的答案,我想出了這個:
SortedMap(it.to:_*)
這工作得很好,避免了必須指定SortedMap
的類型簽名。 雖然看起來仍然很有趣,所以歡迎進一步回答。
您要尋找的功能確實存在於其他組合中,但並不存在。 如果您的集合只需要一個參數,則可以使用.to[NewColl]
。 因此,例如
import collection.immutable._
Iterator(1,2,3).to[SortedSet]
另外, SortedMap
隨SortedMap
對象具有一個可變參數套用,可用於創建排序后的地圖,如下所示:
SortedMap( List((1,"salmon"), (2,"herring")): _* )
(請注意: _*
,這意味着將內容用作參數)。 不幸的是,這需要Seq
而不是Iterator
。
因此,最好的選擇就是您已經在做的方式。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.