2010-06-04 30 views

Trả lời

55

Tùy thuộc vào những gì các loại bộ sưu tập sản lượng dự kiến ​​là (SortedMap s đều được sắp xếp trên các phím), bạn có thể sử dụng một cái gì đó như thế này:

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

Kết quả sẽ là danh sách các cặp khóa/giá trị được sắp xếp theo các giá trị:

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

có một loại đồ mà vẫn giữ được trật tự ban đầu, ListMap, nếu bạn áp dụng điều này, bạn có một bản đồ một lần nữa:

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

Sau đó, bạn có:

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

(Scala 2,8)

+0

+10, nghiêm túc hữu ích, ListMap giữ gìn trật tự thời hậu List-loại – virtualeyes

+0

gì về thứ tự giảm dần? – vefthym

+0

@vefthym 'Bản đồ (" foo "-> 3," nâng cao "-> 1," the "-> 2," bar "-> 4) .toList sortWith {_._ 2> _._ 2}' –

Các vấn đề liên quan