自定义排序

例如:根据文件的最后修改时间进行排序,最新文件在前

Collections.sort(lstFiles, new Comparator<FileListData>() {
@Override
public int compare(FileListData fileListData, FileListData t1) {
File f1 = new File(fileListData.getFilePath());
File f2 = new File(t1.getFilePath());
//默认为正序
return -Long.compare(f1.lastModified(), f2.lastModified());
}
});

自定义数据类排序

根据文件名称排序

public class FileListData implements Comparable<FileListData> {
private String fileName;
private String fileType; public FileListData(String fileName, String fileType) {
this.fileName = fileName;
this.fileType = fileType;
} public String getFileName() {
return this.fileName;
} public String getFileType() {
return this.fileType;
} @Override
public int compareTo(FileListData fileListData) {
if (this.fileType.equals(fileListData.getFileType())) {
int len = this.fileName.length();
if(fileListData.getFileName().length() < len) len = fileListData.getFileName().length();
for(int i = 0; i < len; i++){
int ia = (int) this.fileName.toUpperCase().charAt(i);
int ib = (int) fileListData.getFileName().toUpperCase().charAt(i);
if(ia == ib) continue;
//Integer.compare内部对比结果:
//ia > ib 返回 1;ia < ib 返回 -1;ia = ib 返回 0
return Integer.compare(ia, ib);
}
return 0;
} else if (this.fileType.equals("Directory")) {
return -1;
} else return 1;
}
}

初使化自定义数组

ArrayList<FileListData> lstFiles = new ArrayList<FileListData>();

在需要排序的地方调用列表的排序功能,按照上面自定义的 compareTo 进行排序

Collections.sort(lstFiles);

Android List数组列表自定义排序的更多相关文章

  1. [转载]EF或LINQ 查询时使用IN并且根据列表自定义排序方法

    原文地址:EF或LINQ 查询时使用IN并且根据列表自定义排序方法作者:李明川 EF和LINQ改变了原有的手写SQL时期的一些编码方法,并且增强了各数据库之间的移植性简化了开发时的代码量和难度,由于很 ...

  2. EF或LINQ 查询时使用IN并且根据列表自定义排序方法

    EF和LINQ改变了原有的手写SQL时期的一些编码方法,并且增强了各数据库之间的移植性简化了开发时的代码量和难度,由于很多人不熟,经常会碰到一些写SQL语句时经常会用到的一些方法,而使用EF或LINQ ...

  3. JS实现对数组进行自定义排序

    /** * 数组排序 * @param source 待排序数组 * @param orders 排序字段数组 * @param type 升序-asc 倒序-desc * 调用:var res =  ...

  4. Java对数组和列表的排序1.8新特性

    Java对数组列表的排序 数组 Integer[] a = new Integer[] { 1, 2, 3, 4, 5, 6, 9, 8, 7, 4, 5, 5, 6, 6 }; Arrays.sor ...

  5. java中数组操作,正序,逆序,子数组、自定义排序

    // 数组定义,初始化 int[] array = new int[]{1, 2, 2, 1}; int[] dest = new int[10]; Integer[] soul = new Inte ...

  6. fastjson的常用用法以及自定义排序

    fastJson的四种常用方法 JSON 转 POJO public static <T> T getObject(String pojo, Class<T> tclass) ...

  7. Objective-C之NSArray(数组)默认排序与自定义排序

    在讲OC中数组的排序之前我先上一段代码,它是简单数组排序的一种方法(也就是元素是字符串或者数据的数组,因为后面要讲元素为类的数组排序) 代码1: NSArray *sortArr4 = [sortAr ...

  8. php中数组自定义排序

    php中数组自定义排序方法有很多,现在只提usort();不会保留原有键名. unsort调用方法就是unsrot($arr,func); 注意: 如果func是写在当前类中的话,那么调用的方式是 u ...

  9. js将对象数组按照自定义规则排序

    javascript对一个对象数组进行自定义规则排序,对象中有两个字段. 按照对象中一个字段a的值从小到大规则排序, 效果如下: 排序前: [0]:a=9,b=3 [1]:a=33,b=7 [2]:a ...

  10. php自定义排序数组usort和uasort(uasort保持索引关联)(usort($arr, "cmp");)(比较函数时很普通函数的写法:function cmp($a, $b))

    php自定义排序数组usort和uasort(uasort保持索引关联)(usort($arr, "cmp");)(比较函数时很普通函数的写法:function cmp($a, $ ...

随机推荐

  1. requirejs的简单使用,requirejs报错Uncaught Error: Mismatched anonymous define() module: …

    requirejs的简单使用 define()方法的3个参数: 参数1为模块名称(不填则以当前js的文件名定义一个匿名模块), 参数2为依赖项数组(可不填), 参数3为模块的实现 引入jQuery: ...

  2. mousedown mouseenter mouseup firefox,还是通一用webkit吧,细节的坑刚刚填,毕竟现在是webkit一家大拿!

    mouse,mouseup,mouseenter,mouseover,click坑呀,浏览器表现居然不一致: firefox呀 直接上代码吧,自定义个el-table的select,chrome表现正 ...

  3. 操作系统综合题之“采用记录型信号量机制实现进程INPUT、PROCESS和OUTPUT的同步算法(代码补充)”

    1.问题:系统中有有三个进程INPUT.PROCESS和OUTPUT,共用两个缓冲区BUF1和BUF2.假期设BUF1中最多可放10个数据,现已放入了2个数据:BUF2最多可放5个数据.INPUT进程 ...

  4. js技术之获取当前元素的上一个/下一个兄弟级元素等元素的方法(获取上一个/下一个input)

    一.说明 jQuery获取: jQuery.parent(expr),找父亲节点,可以传入expr进行过滤,比如$("span").parent()或者$("span&q ...

  5. Form验证笔记

    views    request.body        request.POST(request.body)        request.FILES(request.body)        re ...

  6. 解析V8引擎底层原理,探究其优异性能之谜

    @charset "UTF-8"; .markdown-body { line-height: 1.75; font-weight: 400; font-size: 15px; o ...

  7. TVM:PACKFUNC机制

    转载:https://www.cnblogs.com/wanger-sjtu/p/15063948.html 为实现多种语言支持,需要满足以下几点: 部署:编译结果可以从python/javascri ...

  8. ciscn暨长城杯 广东赛区 ISW阶段应急响应

    ciscn暨长城杯 广东赛区 ISW阶段应急响应 题目介绍 小路是一名网络安全网管,据反映发现公司主机上有异常外联信息,据回忆前段时间执行过某些更新脚本(已删除),现在需要协助小路同学进行网络安全应急 ...

  9. 西湖论剑2025Misc—cscs

    西湖论剑2025cscs详解 Cobalt Strike流量主要是找beacon,主要以两种形式呈现 ·一小段shellcode(几百个字节),通常叫做stager shellcode,这段代码下载整 ...

  10. ODOO14里面qweb使用案例

    在ODOO里面中,通过QWeb来对模板进行渲染后加载到浏览器中,故作笔记以便于查询简介:Qweb被用作OpenERP的Web客户端模板引擎.它是一种基于XML的模板语言,同Genshi, Thymel ...