Scala SortedSet:我无法了解订购的工作原理

时间:2014-05-06 18:13:28

标签: scala scala-collections

如何按ID排序我的标签元素?

我不知道如何定义orderById函数...

case class Tag(id: Int, name: String, ttype: String)

val orderByID = Ordering[??].on[Tag](? => ? -> ?)

val mySet: SortedSet[Tag] = SortedSet()(orderByID) ;

2 个答案:

答案 0 :(得分:7)

我认为你需要:

val orderByID = Ordering.by[Tag, Int](_.id)
val mySet: SortedSet[Tag] = SortedSet()(orderByID)

答案 1 :(得分:1)

Ordering.onOrdering[U]转换为Ordering[T]给定函数以从U生成T。在这种情况下,我们需要从Ordering[Int]开始,然后提供Tag => Int函数:

val orderByID = Ordering[Int].on[Tag](_.id)

但正如@Lee所说,Ordering.by在这里是一种更为直接的方法。