List数组排序 标签: java 2016-12-08 17:53 120人阅读 评论(0) 收藏

  • 利用Java中Collections函数的sort()方法进行排序
    Collections在java.util包中
  • sort() 中需要写2个参数
    • 1 要排序的list数组
    • 2 要排序的函数的实例 这个函数要实现Comparator,Serializable这两个接口

排序函数的需要自己编写

按自己需要的字段进行排序

如下 我自己写的一个函数

package com.hanweb.blf.front;

import java.io.Serializable;
import java.util.Comparator;

import com.hanweb.entity.vo.MailStatVO;

public class OrderGroupComparator implements Comparator,Serializable{


    public OrderGroupComparator() {
        super();
        // TODO Auto-generated constructor stub
    }

    @Override
    //这两个参数你不要管 就实数组中前后2个值进行比较
    public int compare(Object o1, Object o2) {
        // 因为类型是Object 所以要转换成自己需要比较的类型 然后进行比较
        int p1 = 0;  
        int p2 = 0;
        if ((o1 instanceof MailStatVO))
        {
        //这里就是转换成 数据本身的类型 MailStatVO 这个类就是需要比较的 List<T> 中的T  所谓的泛型中的类型  我的是List<MailStatVO >你自己转换成自己的类型
          MailStatVO v1 = (MailStatVO)o1;
          MailStatVO v2 = (MailStatVO)o2;
       //然后获取自己所需比较字段 进行排序
          p1 = v1.getI_order();
          p2 = v2.getI_order();
        }
        // 比较字段大小比较 升序 还是倒序 就是好大于号 小于号来实现的 自己可以尝试下  返回值 1  是交换  0 是不交换顺序
        if (p1 > p2) {
          return 1;
        }
        return 0;
    }

}
这个就是调用 进行数组排序
List<MailStatVO> al = new ArrayList();
Comparator order=new OrderGroupComparator();
Collections.sort(al, order);
posted @ 2016-12-08 17:53  xzcl  阅读(270)  评论(0编辑  收藏  举报