2010-06-04 13 views

Respuesta

55

Dependiendo de qué tipo de recogida resultado esperado es (SortedMap s se clasifican en las teclas), se puede usar algo como esto:

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

El resultado sería la lista de pares clave/valor ordenados por el valor:

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

Hay un tipo de mapa que se conserva el orden original, ListMap, si se aplica esto, usted tiene un mapa de nuevo:

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

Entonces usted tiene:

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

(Scala 2,8)

+0

+10, en serio útil, ListaMapa preserva el orden post-Lista-tipo – virtualeyes

+0

¿qué pasa con orden descendente? – vefthym

+0

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

Cuestiones relacionadas