Android集合中對象排序


如果將集合中的對象進行排序,最近使用了一個簡單的方法解決了,隨筆記下來。

 

主要思路:

首先,新建類實現Comparator<?>,這個類是做比較的關鍵類,一般做比較的類型 int 或 String類型。

如果屬性為Int類型比較方式為    rhs.getAge() - lhs.getAge();

如果屬性為String類型方式為     rhs.getName.compareTo(lhs.Name);

以上為降序寫法, 如果是升序將 rhs與lhs順序顛倒即可。

 

1 public class order implements Comparator<Model> {  
2   
3     @Override  
4     public int compare(Model lhs, Model rhs) {  
5         // TODO Auto-generated method stub  
6         return rhs.getAge() - lhs.getAge();  
7     }  
8   
9 } 

第二、做一個測試類,測試一下比較的結果。

注意下面Collections.sort(mm, new order())方法,括號里面參數1為要排序的實體集合,第二個參數為上面

寫比較方法的類。

 1 public class MainActivity extends Activity {  
 2     public List<Model> mm = null;  
 3   
 4     @Override  
 5     protected void onCreate(Bundle savedInstanceState) {  
 6         super.onCreate(savedInstanceState);  
 7         setContentView(R.layout.activity_main);  
 8   
 9         mm = new ArrayList<Model>();  
10         for (int i = 0; i < 3; i++) {  
11             Model model = new Model();  
12             model.setAge(11 + i);  
13             model.setId(22);  
14             model.setName("asdf");  
15             mm.add(model);  
16         }  
17           
18         Collections.sort(mm, new order()); 19         for (int i = 0; i < mm.size(); i++) {  
20             int age = mm.get(i).getAge();  
21             System.out.println("------------->" + age);  
22         }  
23     }  
24 }  

輸出結果

以下是實體類

 1 public class Model {  
 2   
 3     private int id;  
 4     private String name;  
 5     private int age;  
 6   
 7     public int getId() {  
 8         return id;  
 9     }  
10   
11     public void setId(int id) {  
12         this.id = id;  
13     }  
14   
15     public String getName() {  
16         return name;  
17     }  
18   
19     public void setName(String name) {  
20         this.name = name;  
21     }  
22   
23     public int getAge() {  
24         return age;  
25     }  
26   
27     public void setAge(int age) {  
28         this.age = age;  
29     }  
30   
31 } 

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM