1,实现comparable接口和Serializable接口
class GoodsBean( money: Double, pid: String, cid: String, coverUrl: String, title: String)
extends Comparable[GoodsBean] with Serializable {
override def compareTo(o: GoodsBean): Int = {
this.money.compareTo(o.money)
}
}
2,定义为case calss,并实现Orderd特质
case class GoodsBean( money: Double, pid: String, cid: String, coverUrl: String, title: String)
extends Ordered[GoodsBean]{
override def compare(that: GoodsBean): Int = {
this.money.compareTo(that.money)
}
}
3,使用隐式转换,new Ordering
implicit val ordering: Ordering[(String, Double, String)] = new Ordering[(String, Double, String)]{
override def compare(x: (String, Double, String), y: (String, Double, String)): Int = {
-x._2.compareTo(y._2)
}
}
简写:
implicit val ordering: Ordering[(String, Double, String)] = Ordering[Double].on[(String, Double, String)](-_._2)
4,使用元组的排序特点规则进行排序
元组排序先比较第一个字段,相等在比较第二个字段、如果还相等再比较下去