Android实现列表数据按名称排序、中英文混合排序
作者:God丶David 发布时间:2022-10-18 15:15:57
标签:Android,数据排序
有时候我们需要多列表中的数据进行特定的排序,最近项目中用到的是按名称排序,所以简单来说一下:
效果图:
排序方法:
Collections.sort(students, new SortChineseName());
for (Student s : students) {
Log.e("David", "名称正序排列:" + s.getName());
}
Log.d("David", "---------------------------------------");
Collections.reverse(students);
for (Student s : students) {
Log.e("David", "名称倒序排列(一):" + s.getName());
}
Log.d("David", "---------------------------------------");
Collections.sort(students, Collections.reverseOrder(new SortChineseName()));
for (Student s : students) {
Log.e("David", "名称倒序排列(二):" + s.getName());
}
sort方法
class SortChineseName implements Comparator<ResolveInfo> {
/**
* create by Davide
* 参数说明:
* ResolveInfo 为你的List集合中的类-我这里为 android系统中apk信息类
*/
private Context mContext;
//构造-传进来context对象
public SortChineseName(Context mContext) {
this.mContext = mContext;
}
Collator cmp = Collator.getInstance(java.util.Locale.CHINA);
@Override
public int compare(ResolveInfo info1, ResolveInfo info2) {
String apkName1 = info1.loadLabel(mContext.getPackageManager()).toString();
String apkName2 = info2.loadLabel(mContext.getPackageManager()).toString();
/**
*create by Davide
*开始比较-我这儿按照apk的名称排序,便获取apkName
*/
if (cmp.compare(apkName1, apkName2) > 0) {
return 1;
} else if (cmp.compare(apkName1, apkName2) < 0) {
return -1;
}
return 0;
}
}
来源:https://blog.csdn.net/GodDavide/article/details/53085501


猜你喜欢
- 首先,我们看看Map架构。如上图:Map 是映射接口,Map中存储的内容是键值对(key-value)。AbstractMap 是继承于Ma
- 发现要坚持写博客真的是一件很困难的事情,各种原因都会导致顾不上博客。本来打算写自己动手实现orm,看看时间,还是先实现一个动态sql,下次有
- 本文实例为大家分享了java实现多个文件压缩的具体代码,供大家参考,具体内容如下需要用到的ant.jarpackage util;impor
- 一、MyBatis背景介绍MyBatis是支持普通SQL查询,存储过程和高级映射的优秀持久层框架。MyBatis消除了几乎所有的JDBC代码
- NO.1–注释在程序中,尤其是复杂的程序中,适当地加入注释可以增加程序的可读性,有利于程序的修改、调试和交流。注释的内容
- java 算法之归并排序详解一、思想 归并排序:将一个数组排序,可以先(递归地)将它分成两半部份分别排序,然后将结果归并起来; &
- Spring-Data-Redis项目(简称SDR)对Redis的Key-Value数据存储操作提供了更高层次的抽象,类似于Spring F
- SpringBoot配置https(SSL证书)最近在做微信小程序,https是必须条件仅需三步SpringBoot2.x版本对比一下这个小
- 在同一个类中: 对于静态方法,其他的静态或非静态方法都可以直接调用它。而对于非静态方法,其他的非静态方法是可以直接调用它的。但是其他静态方法
- 在任何的生产环境中我们都不可逃避并发这个问题,多线程作为并发问题的技术支持让我们不得不去了解。这一块知识就像一个大蛋糕一样等着我们去分享,抱
- 本文实例为大家分享了Android Studio实现简易计算器的具体代码,供大家参考,具体内容如下一、题目1、如图所示(实际设计,类似此界面
- 本文实例讲述了Java包装类原理与用法。分享给大家供大家参考,具体如下:产生:为了提高数据类型的的面向对象性,所以产生了包装类,包装类中有各
- 本文实例讲述了java实现的日期时间转换工具类。分享给大家供大家参考,具体如下:最基础的东西,总结一下,下次用的时候就方便一些了。废话不多说
- 1.根据单个分隔字符用split截取例如string st="GT123_1";string[] sArray=st.s
- 在windows环境下,命令行程序为cmd.exe,是一个32位的命令行程序,微软Windows系统基于Windows上的命令解释程序,类似
- 在分布式系统中,配置文件散落在每个项目中,难于集中管理,抑或修改了配置需要重启才能生效。下面我们使用 Spring Cloud Config
- 在做android 开发时,在默认情况下当屏幕从竖评变到横屏时会触发 onConfigurationChanged 事件 在默认情况下会重新
- 先来了解一下什么是XMLType类型。XMLType是Oracle从9i开始特有的数据类型,是一个继承了Blob的强大存在,可以用来存储xm
- 一.什么是CASCAS(Compare And Swap,比较并交换),通常指的是这样一种原子操作:针对一个变量,首先比较它的内存值与某个期
- 我们知道hibernate的核心就是对数据库的操作,里面的核心接口就是org.hibernate.Session接口。要想对数据库操作我们就