如何在Scala中定义一个订单?

val hm: HashMap[org.joda.time.DateTime, MyType]我想通过hm.keys.minhm.keys.max分别hm.keys.min集合的第一个和最后一个DateTime ,但是编译器显示No implicit Ordering defined for org.joda.time.DateTime 。 如何定义这种sorting(隐式和显式选项都很有趣)?

 object Joda { implicit def dateTimeOrdering: Ordering[DateTime] = Ordering.fromLessThan(_ isBefore _) } // elsewhere import Joda._ dateTimes.sorted 

为了方便在Scala中使用Joda DateTime,nscala-time被创build: https : //github.com/nscala-time/nscala-time

将其包含在您的项目中后

 libraryDependencies += "com.github.nscala-time" %% "nscala-time" % "1.8.0" 

你可以导入OrderingImplicits 。 要么一次:

 import com.github.nscala_time.time.OrderingImplicits._ 

或特定的一个:

 import com.github.nscala_time.time.OrderingImplicits.DateTimeOrdering