我最近发现了breakOut,喜欢它是多么优雅,但注意到它并不能维持秩序。
eg (来自REPL):
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添加元素?
发布于 2018-05-21 22:38:02
您可以看到这种行为,因为HashMap是一个具有未定义顺序的数据结构。即使您在散列图中看到一些元素的排序,并且它在运行期间是一致的,您也不应该依赖它。如果您确实需要订单,请考虑使用LinkedHashMap
https://stackoverflow.com/questions/50457388
复制相似问题