import java.util.Arrays;
//实现Comparable接口可以进行比较大小
public class People implements Comparable<People>{
private String name;
private Integer age;
public People(String name, Integer age) {
this.name = name;
this.age = age;
}
@Override
public String toString() {
return "People{" +
"name='" + name + '\'' +
", age=" + age +
'}';
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public Integer getAge() {
return age;
}
public void setAge(Integer age) {
this.age = age;
}
//实现Comparable接口 需要实现compareTo比较方法
@Override
public int compareTo(People o) {
//当前对象this和o进行大小比较
//返回值有三种情况
//负数 this < o
//0 this = o
//正数 this > o
//如果修改 比较结果 就可以实现 倒序排列 如 a>b 返回 -1
if (this.age > o.getAge()){
return 1;
}else if (this.getAge() < o.getAge()){
return -1;
}else {
return 0;
}
//同样可以实现
// return this.getAge() - o.getAge();
// return o.getAge() - this.getAge();
}
public static void main(String[] args) {
People p1 = new People("zhangsna",20);
People p2 = new People("lisi",30);
//使用比较方法
System.out.println(p1.compareTo(p2));
//Java中所有的排序都依赖于compareTo 进行大小比较,并且都是升序
//不能控制排序方式,但是可以控制比较结果
//通过控制大小比较结果来影响排序结果
//如将compareTo方法中的 -1 和 1 颠倒 就可以倒序排列
People[] peoples = {p2,p1};//p1,p2位置不影响排序结果
Arrays.sort(peoples);//对数组进行排序(默认升序 )
for (People p : peoples){
System.out.println(p);
System.out.println("==========");
}
}
}
JAVA自定义排序
最新推荐文章于 2024-08-18 22:14:52 发布