需求:客户需要根据某产品价格字段进行升降序排序?

Java API针对集合类型排序提供了两种支持:
java.util.Collections.sort(java.util.List)
java.util.Collections.sort(java.util.List, java.util.Comparator)
 


第一个方法要求所排序的元素类必须实现java.lang.Comparable接口。
第二个方法要求实现一个java.util.Comparator接口。
 
java.lang.Comparable接口和java.util.Comparator接口是Java对排序最提供最基本支持。这两个接口不但可以用于集合元素排序,还可以用于数组排序。
 
如果数组或集合元素是String类型,则可以利用Java API实现的Comparator<String>对象String.CASE_INSENSITIVE_ORDER为容器元素排序。

 

  1. public class TripTicketInfo implements java.io.Serializable,Comparable<TripTicketInfo>  { 
  2. public int compareTo(TripTicketInfo ticketInfo) {        
  3.         return (int)(ticketInfo.getTicketPriceInfo().getPriceNumber() - this.ticketPriceInfo.getPriceNumber());     
  4.     } 
  5. if(Constant.ticketOrder++ % 2 == 0){//升序排列
    Collections.sort(ticketList);
    }else{//降序排列
    Collections.sort(ticketList,Collections.reverseOrder());
    }