scala.collection.Map[java.lang.String, Int] をその値 (Int など) でどのようにソートしますか? それを行うための短くてエレガントな方法は何ですか?
15345 次
1 に答える
55
予想される出力コレクションSortedMap
のタイプ ( はキーでソートされます) に応じて、次のようなものを使用できます。
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
ます。これを適用すると、再びマップになります。
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 に答える