首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >有什么方法可以用Scala的breakOut来保持顺序?

有什么方法可以用Scala的breakOut来保持顺序?
EN

Stack Overflow用户
提问于 2018-05-21 22:31:52
回答 1查看 34关注 0票数 1

我最近发现了breakOut,喜欢它是多么优雅,但注意到它并不能维持秩序。

eg (来自REPL):

代码语言:javascript
复制
scala> val list = List("apples", "bananas", "oranges")
list: List[String] = List(apples, bananas, oranges)

scala> val hs: HashMap[String, Int] = list.map{x => (x -> x.length)}(breakOut)
hs: scala.collection.mutable.HashMap[String,Int] = Map(bananas -> 7, oranges -> 7, apples -> 6)

我喜欢使用breakOut,因为它非常干净和整洁,但排序对我来说很重要。有没有办法让它保持秩序,还是我必须一次一个地向我的hashmap添加元素?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2018-05-21 22:38:02

您可以看到这种行为,因为HashMap是一个具有未定义顺序的数据结构。即使您在散列图中看到一些元素的排序,并且它在运行期间是一致的,您也不应该依赖它。如果您确实需要订单,请考虑使用LinkedHashMap

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/50457388

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档