java.lang.Comparable接口:比较对象大小的标准接口
1.comparableTo方法:类的自然比较方法
int compareTo(Object obj)
当前对象this比object对象大,返回正整数
当前对象this比object对象小,返回负整数
当前对象this和object对象相等,返回0
2.compare:定制排序的接口
int compare(Object obj1,Object obj2)
obj1比obj2对象大,返回正整数
obj1比obj2对象小,返回负整数
obj1比obj2对象相等,返回0
package file; import java.util.Arrays; import java.util.Comparator; /* java.lang.Comparable接口:比较对象大小的标准接口 1.comparableTo方法:类的自然比较方法 int compareTo(Object obj) 当前对象this比object对象大,返回正整数 当前对象this比object对象小,返回负整数 当前对象this和object对象相等,返回0 2.compare:定制排序的接口 int compare(Object obj1,Object obj2) obj1比obj2对象大,返回正整数 obj1比obj2对象小,返回负整数 obj1比obj2对象相等,返回0 * */ public class test13 { public static void main(String[] args) { Student [] s=new Student[3]; s[0]=new Student(1,"zhang_shan",20); s[1]=new Student(2,"li_si",10); s[2]=new Student(3,"wang_wu",30); //按照自然顺序进行排序 Arrays.sort(s); for(int i=0;i<s.length;i++) { System.out.println(s[i]); } //按照成绩进行排序 class StudentScoreCompare implements Comparator{ @Override public int compare(Object obj1,Object obj2) { Student s1=(Student)obj1; Student s2=(Student)obj2; return s1.getScore()-s2.getScore(); } } StudentScoreCompare sc=new StudentScoreCompare(); Arrays.sort(s,sc); for(int i=0;i<s.length;i++) { System.out.println(s[i]); } } } class Student implements Comparable { private int id; private String name; private int score; public Student(int id, String name, int score) { super(); this.id = id; this.name = name; this.score = score; } public Student() { super(); } @Override public String toString() { return "Student [id=" + id + ", name=" + name + ", score=" + score + "]"; } public int getId() { return id; } public void setId(int id) { this.id = id; } public String getName() { return name; } public void setName(String name) { this.name = name; } public int getScore() { return score; } public void setScore(int score) { this.score = score; } //按照学号进行排序 @Override public int compareTo(Object obj) { Student stu=(Student)obj; return this.id-stu.id; } }
原文:https://www.cnblogs.com/hapyygril/p/13050959.html