天天看點

Collections.sort 用法 比較器comparator

import java.util.Comparator;

首先構造一個比較器
public class SortList implements Comparator{//比較器


public int compare(Object o1,Object o2){

NewsValueContainer nvc1 = (NewsValueContainer)o1;
NewsValueContainer nvc2 = (NewsValueContainer)o2;
returnnvc2.getContainerTitle().compareTo(nvc1.getContainerTitle());
//return  nvc1.getContainerTitle().compareTo(nvc2.getContainerTitle()); 則出來的結果的順序與上面的相反
}
}

import java.util.Comparator;


public class SortNewsValue implements Comparator{//必須要實作Comparator
 public int compare(Object o1,Object o2){//重寫compare函數就行
NewsValue nv1 = (NewsValue)o1 ;//NewsValue是你要排序的實體類,javabean
NewsValue nv2 = (NewsValue)o2 ;
return nv2.getCreatedAt().compareTo(nv1.getCreatedAt());//getCreatedAt()就是擷取排序比較的字段
  }
}



import java.util.ArrayList;
import java.util.Collections;
import java.util.List;


public class SortNVandNVC {



public static void  listSortNVandNVC(int tag,List<NewsValueContainer> listnvc){
SortNewsValue snv = new SortNewsValue() ;
SortList sl = new SortList() ;
if(0 == tag){//排getContainerTitle()
      Collections.sort(listnvc,sl);//第一個參數就是你的list,第二個參數就是你的比較器的對象
       for(NewsValueContainer tmp:listnvc){
        }
       }else{
      for(int index = 0 ;index<listnvc.size();index++){
      Collections.sort(listnvc.get(index).getNews(),snv);
      }
      }
}
}