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()); } } } }