[Java] Comparable / Comparator 비교

rara_kim·2022년 7월 26일
0

Java

목록 보기
19/39
post-thumbnail

Comparable

  • 객체를 비교 할 수 있도록 하기 위한 인터페이스
  • compareTo(T o) 메소드 하나가 선언되어 있는 인터페이스
  • 자기 자신매개변수로 들어오는 객체를 비교
  • 반환형 : int
    • 양수: 비교 기준이 더 큰 경우
    • 0: 자신과 같은 경우
    • 음수: 비교 기준이 더 작은 경우
public class Member implements Comparable<Member> {
	private int memberId;
    private String memberName;

	public Member() {}
    public Member(int memberId, String memberName) {
    	this.memberId = memberId;
        this.memberName = memberName;
    }

	@Override
	public int compareTo(Member member) {        
        return this.memberId - member.memberId;  //오름차순
												 //내림차순의 경우 (* -1)로 구현가능
	}
}

Comparator

  • 객체를 비교할 수 있도록 하는 인터페이스
  • compare(T o1, T o2) 메소드 하나가 선언되어 있는 인터페이스
  • 자기 자신이 아닌, 매개변수로 들어오는 객체 o1o2를 비교
  • 보통은 Comparable을 많이 사용하지만, 이미 Comparable이 구현된 경우 Comparator로 비교하는 방식을 다시 구현할 수 있음
public class Member implements Comparator<Member>{
	private int memberId;
	private String memberName;
	
	public Member() {}
	
	public Member(int memberId, String memberName) {
		this.memberId = memberId;
		this.memberName = memberName;
	}
    
    @Override
	public int compare(Member member1, Member member2) {
		return (member1.memberId - member2.memberId);
	}
profile
느리더라도 꾸준하게

0개의 댓글