Java中实现Comparator接口和用法实例(简明易懂)
程序员文章站
2024-03-03 15:13:28
在java中,如果要对集合对象或数组对象进行排序,需要实现comparator接口以达到我们想要的目标。
接下来我们模拟下在集合对象中对日期属性进行排序
一、实体类st...
在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; 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()); } } } }
上一篇: Java多线程编程之使用Exchanger数据交换实例
下一篇: Java中支持可变参数详解