JAVA对象比较器Comparator
http://tech.ddvip.com 2008年06月12日 社区交流
本文详细介绍JAVA对象比较器Comparator
以上代码有可能因为浏览器的布局自动换行。
compare(Person o1, Person o2)的返回值看起来比较别扭。最简单的是
publicintcompare(Booleano1,Booleano2){
return(o1.equals(o2)?0:(o1.booleanValue()==true?1:-1));
}
o1和o2相等返回0,否则o1如果是true 就表示o1大于o2。
再尝试输出结果看看
publicclassMain{
publicMain(){
}
publicstaticvoidmain(String[]args){
Person[]person=newPerson[]{
newPerson("ouyang","feng",Boolean.TRUE,newInteger(27)),
newPerson("zhuang","gw",Boolean.TRUE,newInteger(27)),
newPerson("zhuang","gw",Boolean.FALSE,newInteger(27)),
newtext.Person("zhuang","gw",Boolean.FALSE,newInteger(2)),
};
for(inti=0;i<person.length;i++){
System.out.println("beforesort="+person[i]);
}
java.util.Arrays.sort(person,<SPANclass=hilite1>Comparator</SPAN>s.get<SPANclass=hilite1>Comparator</SPAN>());
for(inti=0;i<person.length;i++){
System.out.println("aftersort="+person[i]);
}
}
}
输出结果:
beforesort=ouyangfeng男27
beforesort=zhuanggw男27
beforesort=zhuanggw女27
beforesort=zhuanggw女2
aftersort=ouyangfeng男27
aftersort=zhuanggw女2
aftersort=zhuanggw女27
aftersort=zhuanggw男27
仔细理解java的Comparator会给你写排序带来很大帮助
来源:javaeye 作者:muscle-liu 责编:豆豆技术应用