Java中完成Comparator接口和用法實例(簡明易懂)。本站提示廣大學習愛好者:(Java中完成Comparator接口和用法實例(簡明易懂))文章只能為提供參考,不一定能成為您想要的結果。以下是Java中完成Comparator接口和用法實例(簡明易懂)正文
在java中,假如要對聚集對象或數組對象停止排序,須要完成Comparator接口以到達我們想要的目的。
接上去我們模仿下在聚集對象中對日期屬性停止排序
1、實體類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;
}
}
2、完成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;
}
}
3、測試
package junit;
import java.util.Collection;
import java.util.Collections;
import java.util.List;
import org.junit.Test;
public class StepComparatorTest {
@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());
}
}
}
}