2010-06-04 4 views

Antwort

55

Je nachdem, was die erwartete Ausgabe Sammlung Typ (SortedMap s auf den Tasten sortiert sind), können Sie so etwas wie dies nutzen könnten:

durch die
Map("foo"->3, "raise"->1, "the"->2, "bar"->4).toList sortBy {_._2} 

Ergebnis wäre die Liste der Schlüssel/Wert-Paare sortiert Wert:

List[(java.lang.String, Int)] = List((raise,1), (the,2), (foo,3), (bar,4)) 

Es ist ein Kartentyp, der den ursprünglichen Auftrag behält, ListMap, wenn Sie diese anwenden, können Sie eine Karte haben wieder:

import collection.immutable.ListMap           
ListMap(Map("foo"->3, "raise"->1, "the"->2, "bar"->4).toList.sortBy{_._2}:_*) 

Dann haben Sie:

scala.collection.immutable.ListMap[java.lang.String,Int] = Map((raise,1), (the,2), (foo,3), (bar,4)) 

(Scala 2,8)

+0

+10, ernsthaft nützlich, Liste Karte bewahrt, um post-List-Art – virtualeyes

+0

was absteigende Reihenfolge? – vefthym

+0

@vfthym 'Map (" foo "-> 3," erhöhen "-> 1," das "-> 2," bar "-> 4) .toList sortWith {_._ 2> _._ 2}' –

Verwandte Themen