Scala中用于比较的两个类:Ordered
、Ordering
Ordered 实现了java.lang.Comparable
接口,对Comparable进行了扩展,更灵活,用气量更方便
Ordering 实现了java的 Comparator
接口,同时对Comparator进行了扩展
class Pair2[T <: Ordered[T]] {
def select(first: T,second: T): T = {
if(first >= second) first else second
}
}
object Pair2 {
def main(args: Array[String]): Unit = {
val p = new Pair2[Girl]
val g1 = new Girl("A", 99.99)
val g2 = new Girl("B", 88.88)
val g = p.select(g1, g2)
println(g.name)
}
}
class Girl(val name: String, val fv: Double) extends Ordered[Girl] {
override def compare(that: Girl): Int = {
(this.fv - that.fv).toInt
}
}