Java对两个对象组成的List集合进行排序

//注:有两个对象数据组成的list集合做成滑动list显示功能“我的工具包”去找;(统一支付程序中交易明细部分)
/**
 * 把查询回来数据放入总的集合中
 */
public void getList() {
    mListAll = new ArrayList<>();//重新赋值,避免多次显示
    offset += mListItems.size();
    offsetWft += mListItemsWft.size();
    for (TransData i : mListItems) {//对象一中的数据从对象一集合取出装入总集合mListALL
        mListAll.add(i);
    }
    for (TransDataScan j : mListItemsWft) {//对象二中的数据从对象二集合取出装入总集合mListALL
        mListAll.add(j);
    }
    //对mListAll中的数据进行排序
    Collections.sort(mListAll, new Comparator<Object>() {
        /*
       * int compare(Student o1, Student o2) 返回一个基本类型的整型,
       * 返回负数表示:o1 小于o2,
       * 返回0 表示:o1和o2相等,
       * 返回正数表示:o1大于o2。
       */
        @Override
        public int compare(Object t1, Object t2) {
            String dateTimeS1,dateTimeS2;
            long dateTimeL1,dateTimeL2;

            if (t1 instanceof TransData){
                dateTimeS1 = (((TransData) t1).getDate() + ((TransData) t1).getTime());
            }else{
                dateTimeS1 = (((TransDataScan) t1).getTime_end().substring(4, 14));
            }
            dateTimeL1 = Long.parseLong(dateTimeS1);

            if (t2 instanceof TransData){
                dateTimeS2 = (((TransData) t2).getDate() + ((TransData) t2).getTime());
            }else{
                dateTimeS2 = (((TransDataScan) t2).getTime_end().substring(4, 14));
            }
            dateTimeL2 = Long.parseLong(dateTimeS2);

            if (dateTimeL1 < dateTimeL2){
                return 1;
            }
            if (dateTimeL1 == dateTimeL2){
                return 0;
            }
            return -1;
        }
    });
}

 

注:如有问题可以回复,看到第一时间分析解决,码农不易,感觉对您有用,帮助到您,可否打赏一杯可乐,在此谢过诸位,愿诸君终成大神,前程似锦~~~

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值