Java TreeSet的定制排序


注:只貼出實現類

package Test3;

import java.util.Comparator;
import java.util.TreeSet;

public class Test {

public static void main(String[] args) {
Comparator com=new Comparator() {①創建一個Comparator接口的匿名內部類

@Override
public int compare(Object o1, Object o2) {②重寫compare方法,定制排序的方法
if(o1 instanceof Employee && o2 instanceof Employee){
Employee e1=(Employee)o1;
Employee e2=(Employee)o2;
MyDate birth1=e1.getBirthday();
MyDate birth2=e2.getBirthday();
if(birth1.getYear()!=birth2.getYear()){
return birth1.getYear()-birth2.getYear();
}else{
if(birth1.getMonth()!=birth2.getMonth()){
return birth1.getMonth()-birth2.getMonth();
}else{
if(birth1.getDay()!=birth2.getDay()){
return birth1.getDay()-birth2.getDay();
}
}
}
}
return 0;
}

};
Employee e1=new Employee("胡",23,new MyDate(1992,10,27));
Employee e2=new Employee("趙",19,new MyDate(1996,10,27));
Employee e3=new Employee("錢",21,new MyDate(1994,10,27));
Employee e4=new Employee("孫",22,new MyDate(1993,10,27));
Employee e5=new Employee("李",20,new MyDate(1995,10,27));

TreeSet<Employee> set=new TreeSet<Employee>(com);③把實現Comparator接口的對象傳遞到TreeSet構造器
set.add(e1);
set.add(e2);
set.add(e3);
set.add(e4);
set.add(e5);

for(Employee e:set){
System.out.println(e);
}
}
}


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM