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    责编:豆豆技术应用

正在加载评论...