Scala集合:一次性转换集合的内容和类型
发布时间:2020-12-16 09:49:40 所属栏目:安全 来源:网络整理
导读:我正在寻找一种有效转换集合的内容和类型的方法. 例如,将map应用于Set并将结果作为List获取. 请注意,我想在将转换应用于源集合时构建结果集合(即,不创建中间集合,然后将其转换为所需类型). 到目前为止,我已经提出了这个问题(在将集合中的每个元素递增时,将Se
我正在寻找一种有效转换集合的内容和类型的方法.
例如,将map应用于Set并将结果作为List获取. 请注意,我想在将转换应用于源集合时构建结果集合(即,不创建中间集合,然后将其转换为所需类型). 到目前为止,我已经提出了这个问题(在将集合中的每个元素递增时,将Set转换为List): val set = Set(1,2,3) val cbf = new CanBuildFrom[Set[Int],Int,List[Int]] { def apply(from: Set[Int]): Builder[Int,List[Int]] = List.newBuilder[Int] def apply(): Builder[Int,List[Int]] = List.newBuilder[Int] } val list: List[Int] = set.map(_ + 1)(cbf) …但我觉得应该有更简短,更优雅的方法(每次我需要时都不需要手动实现CanBuildFrom). 任何想法如何做到这一点? 解决方法
这正是070??00的用途 – 如果你告诉它所需的新集合类型,它会让你想起你需要的CanBuildFrom:
import scala.collection.breakOut val xs: List[Int] = Set(1,3).map(_ + 1)(breakOut) 这只会遍历集合一次.有关详细信息,请参见this answer. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
推荐文章
站长推荐
热点阅读