2012-11-20 26 views
0

我想排序多個鍵一個HashMap,在我使用下面的代碼分類收集由多個鍵

Collections.sort(ilv2, new Comparator<HashMap<String,String>>() { 
     public int compare(HashMap<String, String> arg0, HashMap<String, String> arg1) { 
      // TODO Auto-generated method stub 
      Time d1 = Time.valueOf(arg0.get("stamp")); 
      Time d2 =Time.valueOf(arg1.get("stamp")); 
      return d1.compareTo(d2); 
     } 
    }); 

釷Hasmap ILV2被時關鍵的「郵票」 sortet,但現在我想的那一刻按鍵res_id(int)排序,然後按時間,如sql語句「order by res_id,stamp」 有什麼建議嗎?

編輯: 解決方案基礎上,給出的答案

Collections.sort(ilv2, new Comparator<HashMap<String,String>>() { 
     public int compare(HashMap<String, String> arg0, HashMap<String, String> arg1) { 
      // TODO Auto-generated method stub 
      int i = 0; 
      int r1 = Integer.valueOf(arg0.get("resid")); 
      int r2 = Integer.valueOf(arg1.get("resid")); 
      i = r1-r2; 
      if(i==0){ 
       Time d1 = Time.valueOf(arg0.get("stamp")); 
       Time d2 =Time.valueOf(arg1.get("stamp")); 
       i = d1.compareTo(d2); 
      } 
      return i; 
     } 
    }); 

回答

1

從我的代碼,這樣的事情:

public int compare(ProductItemData pr1, ProductItemData pr2) { 
       int i = pr1.crossed.compareTo(pr2.crossed); 
       if(i==0) { 
        int j = pr1.addTime.compareTo(pr2.addTime); 
        if(j==0) 
         return ((Long)pr1.id).compareTo(pr2.id); 
        else 
         return j; 
       } 
       return i; 
      } 

閱讀有關的CompareTo返回。

+0

如果有幫助請標記答案:) – jumper0k

+0

謝謝,我將編輯我的問題併發布基於您的答案的工作代碼^^ – 2red13