2010-06-04 14 views

risposta

55

A seconda di ciò che il tipo di raccolta risultato atteso è (SortedMap s sono ordinati sui tasti), si potrebbe usare qualcosa di simile:

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

risultato sarebbe l'elenco delle coppie chiave/valore in ordine di valore:

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

C'è un tipo di mappa che mantiene l'ordine originale, ListMap, se si applica questo, si dispone di una mappa di nuovo:

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

Poi ci sono:

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

(Scala 2,8)

+0

+10, seriamente utile, ListaMappa conserva ordine post-List-sorta – virtualeyes

+0

che dire di ordine decrescente? – vefthym

+0

@vefthym 'Map (" foo "-> 3," raise "-> 1," the "-> 2," bar "-> 4) .toList sortWith {_._ 2> _._ 2}' –

Problemi correlati