学习Java的同学注意了!!!
学习过程中遇到什么问题或者想获取学习资源的话,欢迎加入Java学习交流群,群号码:434987175 我们一起学Java!
在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;*/@Overridepublic 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;public class StepComparatorTest {@Testpublic 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());}}} }
学习Java的同学注意了!!!
学习过程中遇到什么问题或者想获取学习资源的话,欢迎加入Java学习交流群,群号码:434987175 我们一起学Java!