Java中實現Comparator介面和用法執行個體(簡明易懂)_java

來源:互聯網
上載者:User

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

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.