2017-08-09 65 views
0

是否有任何优雅的方式来颠倒Scala中LinkedHashMap的元素顺序?如何在Scala中颠倒LinkedHashMap元素的顺序

举例来说,我有一个LinkedHashMap的[整数,字符串],如:

[1, "one"] 
[2, "two"] 
[3, "three"] 

什么是获得的LinkedHashMap [整数,字符串]最喜欢的方式:

[3, "three"] 
[2, "two"] 
[1, "one"] 

回答

1
import scala.collection.mutable.LinkedHashMap 

val linked = LinkedHashMap(1 -> "one", 2 -> "two", 3 -> "three") 

val reversed = LinkedHashMap(linked.toSeq.reverse: _*) 
// reversed: scala.collection.mutable.LinkedHashMap[Int, String] = Map(3 -> three, 2 -> two, 1 -> one) 
+0

谢谢。为自己发现'_ *':) – Strig

1

你可以做

val reverse = for ((key, value) <- map) yield (value, key) 

请注意,这不会更新旧的LinkedHashMap,但会返回一个新的o东北。

+0

这反转了键和值;它不会逆转元素的顺序,这是OP想要的。 – chunjef

+0

确实,我正在寻找如何扭转地图条目的顺序 – Strig

+0

对不起,你说得对,我把它弄混了。 – Bruno