• 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 } 
    人生处处是惊喜
  • 相关阅读:
    删除链表的倒数第N个节点
    SVN快速入门(TSVN)
    C# HttpWebRequest提交数据方式浅析
    简单的3个SQL视图搞定所有SqlServer数据库字典
    简单统计SQLSERVER用户数据表大小(包括记录总数和空间占用情况)
    详细讲解Android对自己的应用代码进行混淆加密防止反编译
    PHP之网络编程
    PHP之ThinkPHP模板标签操作
    PHP之ThinkPHP数据操作CURD
    关于数组的取极值和排序
  • 原文地址:https://www.cnblogs.com/ransky/p/5980585.html
Copyright © 2020-2023  润新知