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.输出结果 加油!!!!
随机推荐
- Django(21)migrate报错的解决方案
前言 在讲解如何解决migrate报错原因前,我们先要了解migrate做了什么事情,migrate:将新生成的迁移脚本.映射到数据库中.创建新的表或者修改表的结构. 问题1:migrate怎么判断哪 ...
- crontab简单使用手册
Linux定时任务(1)- crontab 枫林风雨关注 0.1682018.12.14 12:29:47字数 946阅读 921 执行定时任务 crontab 执行循环任务 at 执行一次性任务 c ...
- 攻防世界 WriteUp
附:|>>>攻防世界-WEB-新手练习区<<<| WriteUp目录 01.|>>>baby_web<<<| 02.|>& ...
- 【转载】ltp压力测试结果分析脚本
博客园 首页 新随笔 联系 管理 订阅 随笔- 8 文章- 0 评论- 0 ltp压力测试结果分析脚本 最近工作性质发生了改变,在做操作系统方面的测试.接手的第一个任务是做ltp stres ...
- ioctl 函数的FIOREAD参数
在学习ioctl 时常常跟 read, write 混淆.其实 ioctl 是用来设置硬件控制寄存器,或者读取硬件状态寄存器的数值之类的. 而read,write 是把数据丢入缓冲区,硬件的驱动从缓冲 ...
- 『政善治』Postman工具 — 14、NewMan工具的使用详解
目录 1.NewMan工具的介绍 2.NewMan的安装 (1)安装 (2)验证NewMan环境: (3)NewMan卸载命令 3.NewMan执行Postman测试集 (1)导出collection ...
- 利用MathType快速提取论文中的公式
首先随便打开一个论文,比如下图,我们想提取公式(2.2.7) 第一步:按截图快捷键:Win+Shift+S ,把公式截取下来 第二步:打开大佬开发的网站:https://mathf.itewqq.cn ...
- Git指令大全
仓库 # 在当前目录新建一个Git代码库 $ git init # 下载一个项目和它的整个代码历史 $ git clone [url] 配置 # 显示当前的Git配置 $ git config --l ...
- Navicat Premium 15 linux 安装与激活 ArchLinux 2021
查看了很多教程花了半小时才弄好可真不容易 参考https://github.com/orginly/navicat-keygen 下载地址 http://www.navicat.com.cn/down ...
- Tomcat 服务器轻松部署 SSL 证书
Tomcat 服务器 SSL 证书安装部署 1准备服务器 购买网上各个产家的云服务器 或者在自己的电脑上装虚拟机 二者皆可,建议选择第一种,因为操作起来相对方便 2安装JDK 2.1上传JDK到Lin ...