Chi*_*rlo 5 collections scala sortedmap
我有一个val it:Iterator[(A,B)],我想SortedMap[A,B]用我得到的元素创建一个Iterator.我现在这样做的方式是:
val map = SortedMap[A,B]() ++ it
Run Code Online (Sandbox Code Playgroud)
它工作正常,但使用感觉有点尴尬.我检查了SortedMap文档,但找不到更优雅的东西.是否有类似的东西:
it.toSortedMap
Run Code Online (Sandbox Code Playgroud)
要么
SortedMap.from(it)
Run Code Online (Sandbox Code Playgroud)
在标准的Scala库中,我可能错过了?
编辑:混合来自@ Rex答案的两个想法我想出了这个:
SortedMap(it.to:_*)
Run Code Online (Sandbox Code Playgroud)
哪个工作正常,并避免必须指定类型签名SortedMap.虽然看起来仍然很有趣,但欢迎进一步的答案.
您正在寻找的功能确实存在于其他组合中,但不适用于您想要的组合.如果您的集合只需要一个参数,则可以使用.to[NewColl].所以,例如,
import collection.immutable._
Iterator(1,2,3).to[SortedSet]
Run Code Online (Sandbox Code Playgroud)
此外,SortedMap伴侣对象有一个varargs apply,可用于创建有序映射,如下所示:
SortedMap( List((1,"salmon"), (2,"herring")): _* )
Run Code Online (Sandbox Code Playgroud)
(注意: _*这意味着使用内容作为参数).不幸的是,这需要一个Seq而不是一个Iterator.
所以你最好的选择就是你已经这样做了.
| 归档时间: |
|
| 查看次数: |
1143 次 |
| 最近记录: |