一、實作一個類的對象直接比較大小
1.前提
(1)類必須實作Compareble接口
(2)且重寫compareTo()方法,自定義比較規則
2.重寫compareTo()方法
//重寫方法,定義學生對象的比較規則
//比較規則:按學号比,學号小的同學往前排
//比較對象:目前學生對象(this)和Object o
public int compareTo(Object o) {
// TODO Auto-generated method stub
Student student=(Student)o;
if(this.getNo()==student.getNo()){
return 0; //學号相同,兩個學生對象一般大
}else if(this.getNo()>student.getNo()){
return 1; //目前學生對象學号大于比較學生對象學号
}else {
return -1; //目前學生對象學号小于比較學生對象學号
}
}
3.調用Collections的sort犯法進行排序
//使用Collections對集合進行升序排列
Collections.sort(list);
for (Student student : list) {
System.out.println(student.getNo()+"-"+student.getName()+"-"+student.getSex());
}
二、執行個體代碼
Student類
package collections_31;
//學生類型:學号,姓名和性别
public class Student implements Comparable{
private int no;
private String name;
private String sex;
public Student() {
super();
// TODO Auto-generated constructor stub
}
public Student(int no, String name, String sex) {
super();
this.no = no;
this.name = name;
this.sex = sex;
}
public int getNo() {
return no;
}
public void setNo(int no) {
this.no = no;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String getSex() {
return sex;
}
public void setSex(String sex) {
this.sex = sex;
}
//重寫方法,定義學生對象的比較規則
//比較規則:按學号比,學号小的同學往前排
//比較對象:目前學生對象(this)和Object o
public int compareTo(Object o) {
// TODO Auto-generated method stub
Student student=(Student)o;
if(this.getNo()==student.getNo()){
return 0; //學号相同,兩個學生對象一般大
}else if(this.getNo()>student.getNo()){
return 1; //目前學生對象學号大于比較學生對象學号
}else {
return -1; //目前學生對象學号小于比較學生對象學号
}
}
}
錄入資料并排序
package collections_31;
import java.util.ArrayList;
import java.util.Collections;
import java.util.List;
//Collections的排序
public class CollectionsUseDemo {
public static void main(String[] args) {
// TODO Auto-generated method stub
List<Student> list=new ArrayList<Student>();
Student student1=new Student(1,"張三","男");
Student student2=new Student(7,"王五","男");
Student student3=new Student(3,"王小花","女");
Student student4=new Student(9,"劉悅","女");
list.add(student1);
list.add(student2);
list.add(student3);
list.add(student4);
System.out.println("=============================");
for (Student student : list) {
System.out.println(student.getNo()+"-"+student.getName()+"-"+student.getSex());
}
System.out.println("=============================");
//使用Collections對集合進行升序排列
Collections.sort(list);
for (Student student : list) {
System.out.println(student.getNo()+"-"+student.getName()+"-"+student.getSex());
}
}
}