自定义排序

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

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. MySQL 中 EXISTS 和 IN 的区别是什么?

    在 MySQL 中,EXISTS 和 IN 都用于在子查询中进行条件判断,但它们的使用场景和性能有一定区别.以下是 EXISTS 和 IN 的主要区别: 1. 功能和用法 EXISTS: EXISTS ...

  2. MySQL 中 int(11) 的 11 表示什么?

    MySQL 中 int(11) 的 11 表示什么? 在 MySQL 中,int(11) 中的 11 并不表示整数的取值范围,而是用于显示宽度(Display Width).它的含义和具体影响如下: ...

  3. MySQL 的索引下推是什么?

    MySQL 的索引下推是什么? 索引下推(Index Condition Pushdown, ICP)是 MySQL 优化器在 InnoDB 存储引擎中引入的一种查询优化技术,从 MySQL 5.6 ...

  4. 2025dsfz集训Day4:BFS及其优化

    DAY4: BFS及其优化 \[Designed\ By\ FrankWkd\ -\ Luogu@Lwj54joy,uid=845400 \] 特别感谢 此次课的主讲 - Kwling BFS 广度优 ...

  5. Vue相关笔记

    Promise基本使用 Promise是异步编程的一种解决方案,用于一个异步操作的最终完成(或失败)及其结果值的表示,比传统的回调函数方案更加合理. var promise = new Promise ...

  6. 我的C/C++开发环境

    我的C/C++开发环境 OS: WSL Ubuntu Compiler: gcc Editor: VS Code Extensions: C/C++ Extenion Pack Settings: 时 ...

  7. 【语义分割专栏】先导篇:常用数据集(VOC、Camvid、Cityscape、ADE20k、COCO)

    目录 前言 mask模式 PASCAL-VOC2012 下载 数据集简介 数据加载(dataloader) CamVid 下载 数据集简介 数据加载(dataloader) Cityscape 下载 ...

  8. Flutter内嵌H5页面与前端通信:实现无缝交互的技术浅析

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

  9. vue之sync

    在 Vue 中,.sync 是一个用于实现双向数据绑定的特殊修饰符.它允许父组件通过一种简洁的方式向子组件传递一个 prop,并在子组件中修改这个 prop 的值,然后将修改后的值反馈回父组件,实现双 ...

  10. C#配置系统

    读取JSON文件 NuGet两个包:Microsoft.Extensions.Configuration,Mircosoft.Extensions.Configuration.Json. { &quo ...