jak posortować scalę.kolekcja.Mapa [Jawa.lang.String, Int] według jego wartości?

Jak posortować scalę?kolekcja.Mapa [Jawa.lang.String, Int] przez jego wartości(tak na Int)? Co to jest krótki i elegancki sposób, aby to zrobić?

Author: Eugene Yokota, 2010-06-04

1 answers

W zależności od oczekiwanego typu kolekcji wyjściowej (SortedMapS są sortowane na kluczach), możesz użyć czegoś takiego:

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

Wynikiem będzie lista par klucz / wartość posortowana według wartości:

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

Istnieje typ mapy, który zachowuje pierwotną kolejność, ListMap, jeśli zastosujesz to, masz mapę ponownie:

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

Wtedy masz:

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

(Scala 2.8)

 55
Author: mkneissl,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2010-06-04 10:04:39