排序使用的是

Collections.sort(List,Comparator)

自定义类实现Comparator接口

假如A的值大于B,你返回1。这样调用Collections.sort()方法就是升序

假如A的值大于B,你返回-1。这样调用Collections.sort()方法就是降序

import com.lanhetech.api.iso8583msg.utils.MyLog;
import com.lanhetech.model.user.Trade; import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Comparator;
import java.util.Date; /**
* 订单按时间排序,最近的日期显示在上面
*/
public class ComparatorDate implements Comparator {
public static final String TAG = "ComparatorDate"; SimpleDateFormat format = new SimpleDateFormat("yyyy/M/d H:mm:ss"); public int compare(Object obj1, Object obj2) {
Trade t1 = (Trade) obj1;
Trade t2 = (Trade) obj2;
// return t1.getTradetime().compareTo(t2.getTradetime()); // 时间格式不好,不然可以直接这样比较
Date d1, d2;
try {
d1 = format.parse(t1.getTradetime());
d2 = format.parse(t2.getTradetime());
} catch (ParseException e) {
// 解析出错,则不进行排序
MyLog.e(TAG, "ComparatorDate--compare--SimpleDateFormat.parse--error");
return 0;
}
if (d1.before(d2)) {
return 1;
} else {
return -1;
}
}
}

使用:

 ComparatorDate c = new ComparatorDate();
Collections.sort(notRechargeTrades, c); // 订单按时间排序
Collections.sort(isFinishTrades, c);
 private List<Trade> notRechargeTrades = new ArrayList<>();
private List<Trade> backMoneyTrades = new ArrayList<>();
private List<Trade> isFinishTrades = new ArrayList<>();
public class Trade extends ComUser implements Serializable {
....
private String tradetime; // 充值时间
....


JAVA 按时间排序的更多相关文章

  1. java compare 时间排序

    所有数据存进resultList中 Collections.sort(resultList, new Comparator<HashMap<String, Object>>() ...

  2. 几种能在O(n*log(n))时间排序

    线性时间排序   各种排序算法总结已经介绍了几种能在O(n*log(n))时间内培训n个数的算法.归并排序和堆排序达到了最坏情况下的上界:快速排序在平均情况下达到该上界.这些算法都有一个有趣的性质:在 ...

  3. java性能时间与空间消耗

    Java性能时间与空间消耗 一.减少时间消耗 标准代码优化 (1) 将循环不变量的计算移出循环 例如:for (int i=0; i<size()*2; i++) { ... } ------& ...

  4. 目录和文件 按创建时间排序du -h --time --max-depth=1 . |sort -r -t $'\t' -k 2 Linux查看文件夹大小,并按文件夹创建时间排序

    目录和文件 按创建时间排序 # du -h --time --max-depth=1 . |sort -r -t $'\t' -k 230M 2020-04-01 14:54 .28K 2020-04 ...

  5. Java实现时间动态显示方法汇总

    这篇文章主要介绍了Java实现时间动态显示方法汇总,很实用的功能,需要的朋友可以参考下 本文所述实例可以实现Java在界面上动态的显示时间.具体实现方法汇总如下: 1.方法一 用TimerTask: ...

  6. 如何对sharepoint图片库的文件夹的图片按照时间排序并分页显示

    /// <summary> /// 获取图片库第一层文件夹--根据文件夹名称排序 /// </summary> /// <param name="siteUrl ...

  7. ls按时间排序输出文件列表

    文件转自:http://www.2cto.com/os/201303/197829.html ls按时间排序输出文件列表   首先,ls --help查看ls相关的与时间排序相关的参数:   > ...

  8. C#实现对指定文件夹中文件按修改时间排序

    string path = "~/Document/Introduction/团队管理制度/";            DirectoryInfo dirinfo = new Di ...

  9. Java 对时间和日期的相关处理

    1. 获取当前系统时间和日期并格式化输出 import java.util.Date; import java.text.SimpleDateFormat; public class NowStrin ...

随机推荐

  1. 修改firefox默认下载路径

    菜单栏---编辑---首选项--在常规页就可以看到下载设置了

  2. oracle导入和导出和授权

    导入数据库: imp demo@orcl file=d:/bak_1023.dmp full=y ignore=y 导出数据库: @orcl file=d:/bak_1023.dmpexp yhtj/ ...

  3. Nginx各项配置的含义

    #user nobody; #配置用户或者组,默认为nobody nobody worker_processes 4; #允许生成的进程数,默认为1 worker_cpu_affinity 00000 ...

  4. 【BZOJ1901】Dynamic Rankings [整体二分]

    Dynamic Rankings Time Limit: 10 Sec  Memory Limit: 128 MB[Submit][Status][Discuss] Description 给定一个含 ...

  5. [ CodeVS冲杯之路 ] P2456

    不充钱,你怎么AC? 题目:http://codevs.cn/problem/2456/ 用贪心的思想,木材当然要尽量分成多的木板,而大的木材能够分成大木板,但是小的木材不一定能够分成大的木板,所以木 ...

  6. React第三次入门

    传统HTML开发在处理越来越多的服务器数据和用户交互数据反应到复杂界面的时候,代码量越来越大,难以维护. Angular是基于MVVM的开发框架,重量级..不适用于移动端的web栈, 其UI组件的封装 ...

  7. hashlib模块加密用法

    hashlib 加密模块 hashlib.md5() 构建一个md5的对象,用于调用对象的update方法去加密   例子: import hashlib hash = hashlib.md5() h ...

  8. js判断处理undefined类型的数据

    code: resFlag = response.result.data.result; /查询客户为白名单用户时,将"*该企业已被列入黑名单"标记清除 if(typeof res ...

  9. 《Java编程思想》笔记 第十三章 字符串

    1.String对象不可变 String对象不可变,只读.任何指向它的引用都不能改变它的内容.改变String内容意味着创建了一个新的String对象. String 对象作为方法参数时都会复制一份引 ...

  10. MyEclipse10.7安装反编译插件

    jad是一个使用比较广泛的Java反编译软件,jadClipse是jad在eclipse下的插件,下面像大家介绍下如何将jadclipse加入到MyEclipse10.X,9.X,8.X当中: htt ...