본문 바로가기
JAVA

Comparable과 Comparator

by 주연이가 주연이다. 2024. 1. 23.

Comparable<>과 Comparator<>의 차이

둘 다 interface로 implements하여 사용한다.

Comparable<>은 자체가 정렬가능

Comparator<>은 누군가를 정렬하는 것

  • Comparable<>
    • int compareTo(T o) 을 재정의(overriding)
    • 자기 자신과 매개변수 객체를 비교 :내가 사용하는(domain) 클래스에 implements하여 내가 사용하는 클래스와 파라미터로 받은 클래스를 비교한다.
    • 객체 자기 자신에게 남과 비교할 수 있는 기준을 주는 것
    • 클래스를 수정해야한다는 점
  • Comparator<>
    • int compare(T o1, T o2) 을 재정의(overriding)
    • 두 매개변수 객체를 비교 : 사용자 정의할 클래스(ex> MyComparator)에 implements하여 파라미터 두개를 받아 비교한다.
    • 클래스를 수정하지 않고 적용할 수 있다는 점
    • 다른 클래스에도 적용할 수 있다는 점
    • 다양한 정렬 기준에 따라 Comparator을 implements한 클래스를 여러 개 만들어 적용할 수 있다.

Comparable<>과 Comparator<>가 둘 다 사용될 때, Comparator<>가 적용된다.

728x90
반응형

'JAVA' 카테고리의 다른 글

Overloading과 Overriding  (0) 2024.01.17