Java에서 Comparator 인터페이스 및 사용 사례 구현(간단명료)

2555 단어 JavaComparator
자바에서 집합 대상이나 그룹 대상을 정렬하려면 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;
  }

}

테스트

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

  }
}


좋은 웹페이지 즐겨찾기