簡體   English   中英

從Scala中的Iterator創建SortedMap

[英]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]

另外, SortedMapSortedMap對象具有一個可變參數套用,可用於創建排序后的地圖,如下所示:

SortedMap( List((1,"salmon"), (2,"herring")): _* )

(請注意: _* ,這意味着將內容用作參數)。 不幸的是,這需要Seq而不是Iterator

因此,最好的選擇就是您已經在做的方式。

暫無
暫無

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

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