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을 만들 때 클래스를 매개변수로 넣어줘야 오류가 발생하지 않는다.