JAVA 按时间排序


排序使用的是

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;        // 充值时间
    ....



免责声明!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系本站邮箱yoyou2525@163.com删除。



 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM