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 }
Android集合中对象排序的更多相关文章
- Java集合中对象排序
集合中的对象排序需求还是比較常见的.当然我们能够重写equals方法,循环比較:同一时候Java为我们提供了更易使用的APIs.当须要排序的集合或数组不是单纯的数字型时,通常能够使用Comparato ...
- List集合中元素排序
应用场景: 在开发中经常遇到要对List<Object>集合进行排序,并且是根据集合中的对象的某个属性来进行排序 --------以下就此做出的解决方案 public static ...
- java中compareTo和compare方法之比较,集合中对象的比较
前言 转自:http://www.cnblogs.com/yueliming/archive/2013/05/22/3092576.html (这里做了一些小改动) 一直一来对集合中对象的比较方案,有 ...
- Android内存泄漏第二课--------(集合中对象没清理造成的内存泄漏 )
一.我们通常把一些对象的引用加入到了集合容器(比如ArrayList)中,当我们不需要该对象时,并没有把它的引用从集合中清理掉,这样这个集合就会越来越大.如果这个集合是static的话,那情况就更严重 ...
- java8 list转map,list集合中的元素的属性转set,list集合中对象的属性转list
一.使用java8对list操作 1.1list转map private Map<String, Member> getMemberMap() { List<Member> m ...
- [个人原创]关于java中对象排序的一些探讨(三)
这篇文章由十八子将原创,转载请注明,并标明博客地址:http://www.cnblogs.com/shibazijiang/ 对对象排序也可以使用Guava中的Ordering类. 构造Orderin ...
- C#中DataTable与泛型集合互转(支持泛型集合中对象包含枚举)
最近在做WCF,因为是内部接口,很多地方直接用的弱类型返回(DataSet),这其实是一种非常不好的方式,最近将项目做了修改,将所有接口返回值都修改成强类型,这样可以减少很多与客户端开发人员的沟通,结 ...
- Java中实现对集合中对象按中文首字母排序
有一个person对象如下: public class Person { private String id;private String nam; } 一个list集合如下: List<Emp ...
- java1.8对集合中对象的特有属性进行排序
每天学习一点点,知识财富涨点点 1.创建对象user12 2.编写测试类 3.输出结果 加油!!!!
随机推荐
- Windows进程间通讯(IPC)----内存映射文件
内存映射文件原理 内存映射文件是通过在虚拟地址空间中预留一块区域,然后通过从磁盘中已存在的文件为其调度物理存储器,访问此虚拟内存空间就相当于访问此磁盘文件了. 内存映射文件实现过程 HANDLE hF ...
- 改善c++程序的150个建议(读后总结)-------0-9
0. 不要让main 函数返回 void 入口函数main()返回类型应该为 int, 即程序结束时return 0 表示程序正常返回,函数结束时 return -1 值表示程序异常返回, 如果不显式 ...
- apiAutoTest:基于mitmproxy实现接口录制
目录 apiAutoTest 目前功能 重大更新(个人认为) 本次更新 契机 根本 如何录制 录制的用例 执行录制的用例 执行结果 实现源码 参考资料 apiAutoTest 先软文介绍下:apiAu ...
- 29.Map,可变参数
1.Map集合 1.1Map集合概述和特点[理解] 单列集合一次存一个元素 双列集合一次存两个元素 键:不能重复的 值:可以重复的 Map集合概述 interface Map<K, ...
- index详解
jQuery的 index 1.index() 获得向匹配的元素,从0开始计数.不给传递参数,返回值是 jQ对象的所有同辈的索引位置 :如果传递选择器代表,在该选择器下的所有索引位置:如果传递具体的j ...
- [bug] CDH 安装 哈希验证失败
分析 验证 parcel 文件的哈希值 和 sha 文件不一致:文件损坏,重新下载 和 sha 官网一致:配置httpd文件 参考 哈希值和官网不一致 https://blog.csdn.net/lv ...
- [刷题] 198 House Robber
要求 你是一个小偷,每个房子中有价值不同的宝物,但若偷连续的两栋房子,就会触发报警系统,求最多可偷价值多少的宝物 示例 [3,4,1,2],返回6[3,(4),1,(2)] [4,3,1,2],返回6 ...
- google 谷歌Python语言规范
Python语言规范 https://zh-google-styleguide.readthedocs.io/en/latest/google-python-styleguide/python_lan ...
- 攻防世界-WEB-新手练习区
附:|>>>攻防世界-WEB-高手进阶区<<<|
- Ansible_管理事实(Fact)
一.Ansible管理事实(fact) 1.Ansible事实描述 1️⃣:Ansible事实是Ansible在受管主机上自动检测到的变量 2️⃣:事实(fact)中包含有与主机相关的信息,可以像pl ...