JAVA/Java2021-2

Comparator 구현

RoarinGom 2021. 10. 9. 13:56

클래스 정렬을 하는데 이용할 수 있다.

Comparable과 Comparator의 차이

: Comparable의 경우 멤버 자신(this)과 비교하기 때문에 매개변수 하나

: Comparator의 경우 매개변수 두 개 비교대상, 앞에꺼에서 뒤에꺼  비교해준다

step1. 클래스 implements Comparator<타입>

: 타입을 설정해주면 overriding 할 compareTo(지정해준타입 매개변수,지정해준타입 매개변수) 형태로 한다.

step2. compareTo() 함수 재정의

비교하여 조건에 따라 return 값에 따라 오름차순 내림차순 설정해 줄 수 있다.

 

public class Member implements Comparator<Member>{
    private int memberId;
    private String memeberName;
	@Override
    public int compare(Member member1, Member member2) {
// 오름차순 정렬
        if(member1.memberId>member2.memberId){
            return 1;
        }else if(member1.memberId<member2.memberId){
            return -1;
        }else{
            return 0;
        }
    }
}

 

+ 이 경우 TreeSet을 만들 때 클래스를 매개변수로 넣어줘야 오류가 발생하지 않는다.