Android 根据时间的升序或降序把数据列表进行排列

Posted 路 宇

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Android 根据时间的升序或降序把数据列表进行排列相关的知识,希望对你有一定的参考价值。

前言:
项目开发中,需要实现音频文件的下载,根据时间降序排列数据列表
步骤一:
创建时间工具类DateUtil

创建stringToDate()方法将字符串转换为date日期格式:

public static Date stringToDate(String dateString){
//从第一个字符开始解析
ParsePosition position = new ParsePosition(0);
SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
Date dateValue = simpleDateFormat.parse(dateString,position);
return dateValue;
}

分析:

1.ParsePosition 是 Format 及其子类所使用的简单类,用来在分析过程中跟踪当前位置。

2.对参数dateString(String类型)从第一个字符开始解析(由position ),转换成java.util.Date类型,
而这个Date的格式为"yyyy-MM-dd HH:mm:ss"
(因为SimpleDateFormat simpleDateFormat = new SimpleDateFormat(“yyyy-MM-dd HH:mm:ss”);)

3.simpleDateFormat.parse():将字符串转换为Date日期格式
simpleDateFormat.format():将Date日期格式转换为字符串

步骤二:

在显示数据列表的Activity中通过比较器比较时间,之后提供适配器的对象

			//通过比较器比较时间
            Collections.sort(userDowns, new Comparator<UserDown>() {
                @Override
                public int compare(UserDown o1, UserDown o2) {
                    Date date1 = DateUtil.stringToDate(o1.DownTime);
                    Date date2 = DateUtil.stringToDate(o2.DownTime);
                    //按照降序排列,如果按升序排列用after即可
                    if (date1.before(date2)) {
                        return 1;
                    } else {
                        return -1;
                    }
                }
            });
            //提供适配器的对象
             mAdapter = new MyDownloadAdapter(this, userDowns);

分析:
before() :如果date1<date2 返回true 否则 返回 false
after() :如果date1>date2 返回true 否则返回false

以上是关于Android 根据时间的升序或降序把数据列表进行排列的主要内容,如果未能解决你的问题,请参考以下文章

如何在 Reactjs 中按升序或降序对数据进行排序?

linux 中 ll 命令如何让查询结果按时间升序或降序排序?

华为机试题 HJ101输入整型数组和排序标识,对其元素按照升序或降序进行排序

华为机试HJ101:对数组元素按照升序或降序进行排序

华为机试HJ101:对数组元素按照升序或降序进行排序

采用冒泡算法对数组进行升序或降序排序