根据对象的某个字段对List<Object>排序

首先说下需求,在开发中会遇到对List<Object>进行排序,这个也可以在数据库里面查询排序出来,但是有的时候会在查出来之后做一些逻辑处理然后排序,所有就要用到对象排序。

  1. 首先创建一个类实现Comparator<T> 接口,并重写int compare(T t1, T t2)接口
  2. import java.util.Comparator;
    
    /**
     * Created by wanghaiyang on 2016/4/11.
     */
    public class ComparatorUtil implements Comparator<ApiCounterResponse> {
        //倒序排列即从大到小,若需要从小到大修改返回值1 和 -1 
        public int compare(ApiCounterResponse o1, ApiCounterResponse o2) {
            double tempResult1 = o1.getTempResult();
            double tempResult2 = o2.getTempResult();
            if (tempResult1 > tempResult2) {
                return -1;
            } else if (tempResult1 < tempResult2) {
                return 1;
            } else {
                return 0;
            }
        }
    }
    

  3. new一个实现类对象,传地参数需要排序的List对象和Comparator的实现类
  4.  public static void main(String[] args) {
            List<ApiCounterResponse> listCounter = new ArrayList<ApiCounterResponse>();
    
            for (int i = 0; i < 10; i ++) {
                ApiCounterResponse api = new ApiCounterResponse();
                api.setMethodId(1L + i);
                api.setTempResult(2.34 + i);
                listCounter.add(api);
                System.out.println(listCounter.get(i).getMethodId());
            }
    
            //在这里进行排序(具体实现看源代码)   
            Comparator comp = new ComparatorUtil();
            Collections.sort(listCounter, comp);
    
            for (int i = 0; i < listCounter.size(); i++) {
                System.out.println(listCounter.get(i).getMethodId());
            }
        }


  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值