Collections. sort 를 이용 하여 정렬 하 는 몇 가지 방법

1. 자바 가 copare To 방법 을 자체 적 으로 실현 하 는 클래스 는 Collections. sort 를 직접 호출 하여 순 위 를 매 길 수 있 습 니 다. 예 를 들 어 String 류: String 류 는 Comparable 인 터 페 이 스 를 실현 하고 copare To 방법 바 텀 은 C + 패키지 로 이 루어 지 며 효율 적 이 므 로 우 리 는 직접 사용 해 야 합 니 다.Integer 등 기초
데이터 형식의 포장 류 도 마찬가지다.
List<String> lists = new ArrayList<String>();  
lists.add("6");  
lists.add("5");  
lists.add("10");  
//lists    String     compareTo  ,      sort  ,          
Collections.sort(lists);

2. 사용자 정의 클래스 는 일반적으로 두 가지 방법 으로 정렬 을 실현 합 니 다.
Comparable 인 터 페 이 스 를 실현 합 니 다
public class Test implements Comparable<Test>{  
    private int order;  
    public int getOrder() {  
        return order;  
    }  
    public void setOrder(int order) {  
        this.order = order;  
    }  
 
    @Override  
    public int compareTo(Test t) { //            
        return new Integer(this.order).compareTo(new Integer(t.getOrder()));
    }      
}

    2. Comparator 인 터 페 이 스 를 실현 한다.
public class Apple {
 private String appleName;
 private String appleColor;
 private String appleProvider;
 
 public Apple(String appleName, String appleColor, String appleProvider) {
  super();
  this.appleName = appleName;
  this.appleColor = appleColor;
  this.appleProvider = appleProvider;
 }

 @Override
 public String toString() {
  return "appleName=" + appleName;
 } 
  
}
import java.util.Comparator;

public class Test implements Comparator<Apple> {

 private int comparatorType;

 /**

  * comparatorType   0 ,   appleName   

  * comparatorType  1 ,   appleColor   

  * comparatorType  2 ,   appleProvider   

  * @param comparatorType

  */

 public Test(int comparatorType) {

  this.comparatorType = comparatorType;

 }

 @Override

 public int compare(Apple lhs, Apple rhs) {

  if(0 == this.comparatorType)

   return lhs.getAppleName().compareTo(rhs.getAppleName());

  else if(1 == this.comparatorType)

   return lhs.getAppleColor().compareTo(rhs.getAppleColor());

  else if(2 == this.comparatorType)

   return lhs.getAppleProvider().compareTo(rhs.getAppleProvider());

  return 0;

 }

}
public static void main(String[] args){

  List<Apple> apples = new ArrayList<Apple>();
  apples.add(new Apple("h", "b", "hd"));
  apples.add(new Apple("a", "c", "gf"));
  Collections.sort(apples, new Test(2));//         

  System.out.println(apples.toString());

 }

    :[appleName=a, appleName=h]

좋은 웹페이지 즐겨찾기