Comment classeriez-vous un scala.collection.Map [java.lang.String, Int] par ses valeurs (ainsi sur l'Int)? Quelle est la manière courte et élégante de procéder?
Réponse
Trop de publicités?Selon ce que la sortie attendue de la collecte est de type (SortedMap
s sont triés sur les touches), vous pouvez utiliser quelque chose comme ceci:
Map("foo"->3, "raise"->1, "the"->2, "bar"->4).toList sortBy {_._2}
Le résultat serait la liste de paires clé/valeur triées par ordre de valeur:
List[(java.lang.String, Int)] = List((raise,1), (the,2), (foo,3), (bar,4))
Il est un type de Carte qui conserve l'original de l'ordonnance, ListMap
, si vous appliquez ce, vous avez une carte de nouveau:
import collection.immutable.ListMap
ListMap(Map("foo"->3, "raise"->1, "the"->2, "bar"->4).toList.sortBy{_._2}:_*)
Ensuite, vous avez:
scala.collection.immutable.ListMap[java.lang.String,Int] = Map((raise,1), (the,2), (foo,3), (bar,4))
(Scala 2.8)