程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> JAVA編程 >> 關於JAVA >> Java中完成Comparator接口和用法實例(簡明易懂)

Java中完成Comparator接口和用法實例(簡明易懂)

編輯:關於JAVA

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

  }
}

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved