как отсортировать scala.collection. Карта [java.lang. Строка, Интервал] его значениями?

Как Вы отсортировали бы scala.collection. Карта [java.lang. Строка, Интервал] его значениями (так на Интервале)? Что такое короткий и изящный способ сделать это?

33
задан Eugene Yokota 15 December 2010 в 21:15
поделиться

1 ответ

В зависимости от ожидаемого типа выходной коллекции ( SortedMap s сортируются по ключам), вы можете использовать что-то вроде этого:

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

Результатом будет список пар ключ / значение, отсортированных по значению:

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

Существует тип карты, который сохраняет исходный порядок, ListMap , если вы примените это, у вас снова будет карта:

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

Тогда у вас есть:

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

(Scala 2.8)

55
ответ дан 27 November 2019 в 18:20
поделиться
Другие вопросы по тегам:

Похожие вопросы: