繁体   English   中英

如何在Scala中定义订购?

[英]How to define an Ordering in Scala?

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

object Joda {
    implicit def dateTimeOrdering: Ordering[DateTime] = Ordering.fromLessThan(_ isBefore _)
}

// elsewhere
import Joda._
dateTimes.sorted

为了便于在Scala中使用Joda DateTime,创建了nscala-time: 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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM