scala学习之自定义排序

scala自定义排序

自定义排序两种方式:

	    **1:实现继承ordered
		   2:new ordering**

1:new ordering

//排序方法一
def sortgather(): Unit = {
println(“集合排序----方法2”)
val set = mutable.SortedSet(new person(“zs”, 33),
new person(“ls”, 23),
new person(“ws”, 43))(new Orderingperson {
override def compare(x: person, y: person): Int = {
var sort01 = x.age.compareTo(y.age) //排序1t
if (sort01 == 0) {
sort01 = x.name.compareTo(y.name) //排序规则2
}
sort01
}
})
println(set)
}
//构造
class person {
//排序方法一:继承ordered
var name: String = _
var age: Int = _
def this(name: String, age: Int) {
this()
this.name = name
this.age = age
}
override def toString: String = this.name + this.age
}

2:实现继承ordered

def sortgather(): Unit ={

println("集合排序----方法1")
val set =mutable.SortedSet(new person("zs",33),
  new person("ls",23),
  new person("ws",43))
println(set)

}
}
class person extends Ordered[person]{//排序方法一:继承ordered
var name:String= _
var age:Int= _
def this(name:String,age:Int){
this()
this.name=name
this .age=age
}
//重写tostring,否则为地址
override def toString: String = this.name+this.age
override def compare(that: person) = {
var sort01=this.age.compareTo(that.age)//排序1t
if(sort01==0){
sort01=this.name.compareTo(that.name)//排序规则2
}
sort01
}
}

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值