版权声明:LemonSnm https://blog.csdn.net/LemonSnm/article/details/89762323
对象比较器
对两个或多个数据项进行比较,以确定它们是否相等,或确定它们之间的大小关系及排列顺序为比较。
Arrays.sort方法可以实现对象的排序操作:
//Arrays.sort()排序
//排序规则 数字大小
int[] s = {2,5,1,8,10,45,4};
Arrays.sort(s);
System.out.println(Arrays.toString(s));
//排序规则 拼音首字母 由大到小
String[] strs = {"贝贝","晶晶","欢欢","莹莹","妮妮"};
Arrays.sort(strs);
System.out.println(Arrays.toString(strs));
1.Comparabale
此接口强行对实现它的每一个类的对象进行整体排序。这种排序被称为类的自然排序,类的comparaTo方法被称为它的自然排序方法。
自定义People:
package com.lemon;
/**
*
* @author lemonSun
*
* 2019年5月2日下午4:51:39
*/
public class People implements Comparable<People> {
private String name;
private int age;
public People() {
super();
}
public People(String name, int age) {
super();
this.name = name;
this.age = age;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public int getAge() {
return age;
}
public void setAge(int age) {
this.age = age;
}
@Override
public String toString() {
return "People [name=" + name + ", age=" + age + "]";
}
@Override
public int compareTo(People o) {
//当前小于以前为真 从小到大排序
// if(this.age > o.age) return 1;
// if(this.age < o.age) return -1;
// return 0;
return this.age - o.age;
}
}
测试:
People[] p = {new People("贝贝",6),new People("欢欢",4),new People("妮妮",5)};
Arrays.sort(p);
System.out.println(Arrays.toString(p));
注意:排序自定义People对象,需要People类继承comparable接口,实现compareTo方法,在其中自定义排序规则