【发布时间】:2014-12-14 05:52:26
【问题描述】:
我正在尝试根据值元组对地图进行排序
val data = Map("ip-11-254-25-225:9000" -> (1, 1413669308124L),
"ip-11-232-145-172:9000" -> (0, 1413669141265L),
"ip-11-232-132-31:9000" -> (0, 1413669128111L),
"ip-11-253-67-184:9000" -> (0, 1413669134073L),
"ip-11-232-142-77:9000" -> (0, 1413669139043L))
排序标准应该基于元组中的两个值
我试过了
SortedMap[String, (Long,Long)]() ++ data
但没有成功。
有人可以建议一种更好的方法,先在 tuple._1 上排序,然后在 tuple._2 上排序
【问题讨论】:
-
使用
def sortWith(lt: (A, A) ⇒ Boolean): List[A]和compareTo函数来比较你的元组。 -
请注意,SortedMap 是按键排序的,而不是按值排序的,所以无论如何它都不是你想要的
-
您可以使用
ListMap和sortBy(_._2),如[this question] 接受的答案中所述。
标签: scala data-structures scala-collections scala-2.10 sortedmap