Android集合中對象排序

來源:互聯網
上載者:User

標籤:

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

 

主要思路:

首先,建立類實現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 } 

 

Android集合中對象排序

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.