【发布时间】:2017-11-19 13:26:35
【问题描述】:
假设我有以下 Scala 类:
Human(id: String, task: Task)
Task(id: String, time: Duration)
并且有一个List[(Human, Task)] 包含以下元素:
("H2", Task("T3", 5 minute))
("H3", Task("T1", 10 minute))
("H1", Task("T1", 10 minute))
("H1", Task("T2", 5 minute))
现在我想在功能上检查关闭元素是否具有相同的持续时间,如果是,则按人类 ID 对它们进行排序。
在这种情况下,最终列表的元素排序如下:
("H2", Task("T3", 5 minute))
("H1", Task("T1", 10 minute))
("H3", Task("T1", 10 minute))
("H1", Task("T2", 5 minute))
我尝试使用 sortBy 这样做,但我这样做的方式是,最终列表将按 Human ID 完全排序,而不是比较时间。
有人知道我该怎么做吗?
【问题讨论】:
-
“你的做法”是什么?
标签: scala list sorting functional-programming