JAVA對list集合進行排序Collections.sort()

對一個集合中的對象進行排序,根據對象的某個指標的大小進行升序或降序排序。代碼如下:

// 進行降序排列
        Collections.sort(list, new Comparator<ResultTypeDesc>() {
            public int compare(ResultTypeDesc o1, ResultTypeDesc o2) {
                return o2.getRatio().compareTo(o1.getRatio());
            }
        });
// 進行升序排列
        Collections.sort(list, new Comparator<ResultTypeDesc>() {
            public int compare(ResultTypeDesc o1, ResultTypeDesc o2) {
                return o1.getRatio().compareTo(o2.getRatio());
            }
        });

經過測試發現,只需要把兩個對象的位置調換一下即可升序或降序。

如果指標相同,根據多個指標進行排序,需創建一個比較器:

import java.util.*;

public class ComparatorResultType implements Comparator{

 public int compare(Object arg0, Object arg1) {
  ResultTypeDesc desc0=(ResultTypeDesc)arg0;
  ResultTypeDesc desc1=(ResultTypeDesc)arg1;

   //首先比較主指標,如果主指標相同,則比較次指標

  int flag=desc0.getXXX().compareTo(desc1.getXXX());
  if(flag==0){
   return desc0.getXXX2().compareTo(desc1.getXXX2());
  }else{
   return flag;
  }  
 }
}

//測試類中代碼:
ComparatorResultType comparator=new ComparatorResultType();
Collections.sort(list, comparator);

對list集合進行逆輸出:

Collections.reverse(list);

ResultTypeDesc這個爲所需的實體類對象,具體使用結合自己代碼情況即可。

此方法有可能報空指針,自己結合情況,自行解決,判斷是否爲NULL。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章