您的位置:首页 > 编程语言 > Java开发

java比较器Comparator

2012-07-10 18:12 274 查看
package com.java.demo.Comparator;

import java.sql.Date;

import java.util.ArrayList;

import java.util.Collections;

import java.util.Comparator;

import java.util.List;

/**

* 运号单流程

*

* @author Administrator

*/

public class TestComparator {

/**

* 测试main方法

* @param args

*/

public static void main(String[] args) {

List<Step> steps = new ArrayList<Step>();

Step s1 = new Step("2012-07-10", "北京1");

Step s2 = new Step("2012-07-11", "北京2");

Step s3 = new Step("2012-07-12", "北京3");

Step s4 = new Step("2012-07-09", "北京4");

Step s5 = new Step("2012-07-11", "北京22");

steps.add(s1);

steps.add(s2);

steps.add(s3);

steps.add(s4);

steps.add(s5);

sort(steps);

}

private static void sort(List<Step> steps) {

//对集合对象进行排序

MyStepComparator comparator = new MyStepComparator();

Collections.sort(steps, comparator);

if(steps != null && steps.size() > 0) {

for(Step step:steps) {

System.out.print(step.getAcceptTime() + ":");

System.out.println(step.getAcceptAddress());

}

}

}

/**

* 对Step类进行排序比较的工具类

*

* @author Administrator

*

*/

static class MyStepComparator implements Comparator<Step>{

/**

* 如果o1小于o2,返回一个负数;如果o1大于o2,返回一个正数;如果他们相等,则返回0;

*/

@Override

public int compare(Step o1, Step o2) {

Date acceptTime1 = Date.valueOf(o1.getAcceptTime());

Date acceptTime2 = Date.valueOf(o2.getAcceptTime());

//对日期字段进行升序,如果欲降序可采用before方法

if(acceptTime1.after(acceptTime2)) {

return 1;

} else if(acceptTime1.before(acceptTime2)) {

return -1;

} else {

return 0;

}

}

}

/**

* 需要比较的对象

* @author maodejun

*

*/

static 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;

}

}

}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: