我最近发现了breakOut并且喜欢它有多优雅,但注意到它并没有保持秩序。
例如(来自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添加元素?
答案 0 :(得分:2)
您会看到此行为,因为HashMap
是具有未定义顺序的数据结构。即使您在哈希映射中看到元素的某些排序并且它在运行中是一致的,您也不应该依赖它。如果您确实需要订单,请考虑使用LinkedHashMap