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自定義排序
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.