我有一个val it:Iterator[(A,B)]
我想创建一个SortedMap[A,B]
与我从中得到的元素Iterator
。我现在的做法是:
val map = SortedMap[A,B]() ++ it
它工作正常,但使用起来感觉有点尴尬。我检查了SortedMap
doc,但找不到更优雅的东西。有没有类似的东西:
it.toSortedMap
or
SortedMap.from(it)
在标准 Scala 库中,也许我错过了?
Edit:将 @Rex 的回答中的两个想法混合起来我想出了这个:
SortedMap(it.to:_*)
这工作得很好并且避免了必须指定的类型签名SortedMap
。不过看起来仍然很有趣,所以欢迎进一步的答案。
您正在寻找的功能确实存在于其他组合中,但不存在您想要的组合。如果您的集合只需要一个参数,您可以使用.to[NewColl]
。所以,举例来说,
import collection.immutable._
Iterator(1,2,3).to[SortedSet]
另外,SortedMap
伴随对象有一个 varargs apply ,可用于创建排序映射,如下所示:
SortedMap( List((1,"salmon"), (2,"herring")): _* )
(注意: _*
这意味着使用内容作为参数)。不幸的是,这需要一个Seq
,不是一个Iterator
.
所以你最好的选择就是你已经这样做的方式。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)