加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 综合聚焦 > 服务器 > 安全 > 正文

在scala中从Iterator创建SortedMap

发布时间:2020-12-16 18:15:55 所属栏目:安全 来源:网络整理
导读:我有一个val it:Iterator [(A,B)],我想创建一个SortedMap [A??,B],其中包含我从Iterator中获取的元素.我现在这样做的方式是: val map = SortedMap[A,B]() ++ it 它工作正常,但使用感觉有点尴尬.我检查了SortedMap文档,但找不到更优雅的东西.是否有类似的东
我有一个val it:Iterator [(A,B)],我想创建一个SortedMap [A??,B],其中包含我从Iterator中获取的元素.我现在这样做的方式是:

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伴侣对象有一个varargs apply,可用于创建有序映射,如下所示:

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

(注意:_ *表示使用内容作为参数).不幸的是,这需要Seq,而不是Iterator.

所以你最好的选择就是你已经这样做了.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读