将可变映射转换为不可变映射
private[this]object MMMap extends HashMap[A, Set[B]] with MultiMap[A, B]
如何将其转换为不可变?
private[this]object MMMap extends HashMap[A, Set[B]] with MultiMap[A, B]
How convert it to immutable?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(4)
不可变层次结构不包含 MultiMap,因此您将无法使用相同方便的语法来使用转换后的结构。但如果您乐意处理键/值集对,那么:
如果您只想要一个可变的
HashMap
,则可以在 2.8 或中使用
。x.toMap
2.7 中的 >collection.immutable.Map(x.toList: _*)但是,如果您希望整个结构不可变(包括底层集合!),那么您必须做更多工作:您需要一路转换集合。在 2.8 中:
在 2.7 中:
The immutable hierarchy doesn't contain a MultiMap, so you won't be able to use the converted structure with the same convenient syntax. But if you're happy to deal with key/valueset pairs, then:
If you just want a mutable
HashMap
, you can just usex.toMap
in 2.8 orcollection.immutable.Map(x.toList: _*)
in 2.7.But if you want the whole structure to be immutable--including the underlying set!--then you have to do more: you need to convert the sets along the way. In 2.8:
In 2.7:
您只需执行以下操作即可
You can just to the following
在 Scala 2.8 及更高版本中,您可以使用 myMap.toMap 将可变映射转换为不可变映射。
从文档中查看
toMap
的定义:You can use
myMap.toMap
to convert an a mutable map into immutable in Scala 2.8 and later versions.Looking at definition of
toMap
from documentation: