comparator<> || Collections.sort -------------------------java

来源:互联网 发布:js图片点击放大轮播 编辑:程序博客网 时间:2024/04/29 03:25

java中Comparator的用法

在java中,如果要对集合对象或数组对象进行排序,需要实现Comparator接口以达到我们想要的目标。

         

接下来我们模拟下在集合对象中对日期属性进行排序

一、实体类Step

复制代码
package com.ljq.entity;/** * 运号单流程 *  * @author Administrator *  */public class Step{    /** 处理时间 */    private String acceptTime = "";    /** 快件所在地点 */    private String acceptAddress = "";    public Step() {        super();    }    public Step(String acceptTime, String acceptAddress) {        super();        this.acceptTime = acceptTime;        this.acceptAddress = acceptAddress;    }    public String getAcceptTime() {        return acceptTime;    }    public void setAcceptTime(String acceptTime) {        this.acceptTime = acceptTime;    }    public String getAcceptAddress() {        return acceptAddress;    }    public void setAcceptAddress(String acceptAddress) {        this.acceptAddress = acceptAddress;    }}
复制代码

        

二、实现Comparator接口

复制代码
package com.ljq.entity;import java.util.Comparator;import java.util.Date;import com.ljq.util.UtilTool;/** * 对Step类进行排序 *  * @author Administrator * */public class StepComparator implements Comparator<Step>{    /**     * 如果o1小于o2,返回一个负数;如果o1大于o2,返回一个正数;如果他们相等,则返回0;     */    @Override    public int compare(Step o1, Step o2) {        Date acceptTime1=UtilTool.strToDate(o1.getAcceptTime(), null);        Date acceptTime2=UtilTool.strToDate(o2.getAcceptTime(), null);                //对日期字段进行升序,如果欲降序可采用before方法        if(acceptTime1.after(acceptTime2)) return 1;        return -1;    }}
复制代码

           

三、测试

复制代码
package junit;import java.util.Collection;import java.util.Collections;import java.util.List;import org.junit.Test;
 @Test    public void sort() throws Exception{        List<Step> steps=new ArrayList<Step>;        //对集合对象进行排序         StepComparator comparator=new StepComparator();        Collections.sort(steps, comparator);        if(steps!=null&&steps.size()>0){            for(Step step:steps){               System.out.println(step.getAcceptAddress());               System.out.println(step.getAcceptTime());            }        }    }}

0 0
原创粉丝点击