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
}
}