排序使用的是

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. Android布局优化思考

    一.关于RelativeLayout和LinearLayout的使用 由源码可以知道,RelativeLayout需要对其子View进行两次measure过程,而LinearLayout只需一次mea ...

  2. POJ2154 Color

    Time Limit: 2000MS   Memory Limit: 65536K Total Submissions: 10322   Accepted: 3360 Description Bead ...

  3. 哈希Hash在字符串中的应用_C++

    本文含有原创题,涉及版权利益问题,严禁转载,违者追究法律责任 哈希大家都会用撒,字符串显然都会写撒,那么哈希离散化字符串不就懂了?!(XXX的神逻辑,其实原文是:树都晓得吧,数组显然都会开呀,那么恭喜 ...

  4. JSP的简便写法

    aaarticlea/png;base64,iVBORw0KGgoAAAANSUhEUgAAAMIAAAFmCAIAAACwedIqAAAWfklEQVR4nO2d7XPV1p3H77+x+3JfpJ ...

  5. How to learn wxPython

    目录 How to learn wxPython Learn Python Choose a good editor Install wxPython Read the wxPython tutori ...

  6. java 聊天程序

    package cn.apr.chart; import java.net.*; import java.io.*; import java.util.*; public class ChatServ ...

  7. TCP/IP Http的区别

    TPC/IP协议是传输层协议,主要解决数据如何在网络中传输,而HTTP是应用层协议,主要解决如何包装数据. 关于TCP/IP和HTTP协议的关系,网络有一段比较容易理解的介绍:“我们在传输数据时,可以 ...

  8. linux内核源码中两个重要的宏

    转载:http://www.cnblogs.com/skywang12345/p/3562146.html 倘若你查看过Linux Kernel的源码,那么你对 offsetof 和 containe ...

  9. suse下自动启动脚本

    suse下自动启动脚本 http://blog.csdn.net/herobox/article/details/8961358 suse下自动启动脚本 也许你对SUSE Linux很了解,也许你不太 ...

  10. 【bzoj3439】KPM的MC密码

    这题乍一看后缀相等很烦的样子…… 其实如果把字符串倒过来,那么相等的后缀就可以转化成前缀,前缀相等扔进trie就可以了. 剩下无非是Trie的树链kth,主席树随便维护就好. 注意一个串彻底结束才能打 ...