您将如何按其值对 scala.collection.Map[java.lang.String, Int] 进行排序(在 Int 上如此)?什么是一种简短而优雅的方式来做到这一点?
问问题
15345 次
1 回答
55
根据预期的输出集合类型是什么(SortedMap
s 按键排序),您可以使用如下内容:
Map("foo"->3, "raise"->1, "the"->2, "bar"->4).toList sortBy {_._2}
结果将是按值排序的键/值对列表:
List[(java.lang.String, Int)] = List((raise,1), (the,2), (foo,3), (bar,4))
有一个 Map 类型保留了原来的顺序,ListMap
如果你应用这个,你又得到了一个 map:
import collection.immutable.ListMap
ListMap(Map("foo"->3, "raise"->1, "the"->2, "bar"->4).toList.sortBy{_._2}:_*)
然后你有:
scala.collection.immutable.ListMap[java.lang.String,Int] = Map((raise,1), (the,2), (foo,3), (bar,4))
(斯卡拉 2.8)
于 2010-06-04T09:56:14.380 回答