2014-06-24 3 views
1

내가 일하고 있어요 프로젝트가이 내가 시작 한 것입니다 :구현은 compareTo() 메소드

public class Pair<T extends Comparable, E extends Comparable> implements Comparable{ 

    private E e; 
    private T t; 

    public int compareTo(Pair arg0) { 
     // TODO Auto-generated method stub 
     return 0; 
    } 

} 

내가 오름차순으로 정렬 된 쌍을 정렬하는이 클래스를 사용할 필요가 . 첫 번째 요소가 동일하면 송신 점별로 정렬해야합니다.

제발 도와 주시겠습니까?

+2

원시 형식을 사용하지 마십시오. –

+0

질문을 직접 편집 해주세요.하지만 코드에 입력 한 형식을 손상시키지 마십시오. –

+0

감사합니다. 그것을하는 방법을 알아낼 수 없었다. 나는이 포럼에 처음 온 사람이다. – user3091733

답변

7

클래스 정의에서 TE 제네릭은 자체에 대한 비교가 부족합니다. 이는 Pair 클래스에서도 마찬가지입니다. 클래스의 정의는 다음과 같아야합니다.

public class Pair<T extends Comparable<T>, E extends Comparable<E>> implements Comparable<Pair<T, E>> { 

} 

이제 쌍을 비교하는 방법을 정의 할 수 있습니다. 다음은 그 예입니다.

public class Pair<T extends Comparable<T>, E extends Comparable<E>> implements Comparable<Pair<T, E>> { 
    private E e; 
    private T t; 

    public int compareTo(Pair<T, E> pair) { 
     int result = t.compareTo(pair.t); 
     return (result == 0) ? e.compareTo(pair.e) : result; 
    } 
} 
+0

그건 말이되는 것 같습니다. "Pair 클래스의 compareTo() 메서드는 E 및 T 형식 변수의 compareTo() 메서드를 사용해야합니다." 그냥 compareTo() 메서드 내부에서 이미 수행 한 작업을 참조하는 것입니다. – user3091733

+0

예, 최상의 결과를 얻으려면 ..... –

+0

이고, 'T extends Comparable '을 사용하고 'E'에도 동일합니다. – newacct