프로그래밍/JAVA

Comparable vs Comparator 차이

Cognivox 2025. 4. 22. 16:01
반응형

🎯 핵심 차이:

Comparable vs Comparator

비교 대상                            Comparable                                               Comparator 
기준 위치 "내 안에 기준 있어!" "외부에서 기준을 줘!"

✅ Comparable은? ( 비교 가능한) 

📦 어떤 객체(예: 학생 클래스) 자기 안에
“나는 이렇게 정렬돼야 해” 하고
정렬 기준을 스스로 정해놓는 것

예:

나는 성적으로 정렬될 거야!
다른 사람 필요 없어, 나 혼자 기준 있음!


✅ Comparator는? ( 비교 측정기)

🔧 객체는 기준을 모르고,
외부 사람이
“얘네는 이렇게 정렬하자” 하고
기준을 따로 줘서 정렬하는 것이야.

예:

얘네를 이름순으로 정렬해줘!
다음엔 생일순으로 정렬해줘!
➡️ 정렬 기준을 그때그때 바꿔줄 수 있음!


🧠 진짜 쉬운 비유

✔ Comparable은?

👤 “나는 키 순서대로 줄 설 거야!”
→ 사람이 스스로 정렬 기준을 갖고 있는 경우!


✔ Comparator는?

🧑‍🏫 선생님이 기준을 줌:
“너희 오늘은 이름순으로 줄 서!”
“내일은 생일순으로 줄 서!”

→ 객체는 몰라.
→ 선생님(외부 기준)이 정해주는 거야.


💬 요약 한 줄로

  • Comparable 👉 내가 스스로 정렬 기준을 가지고 있음
  • Comparator 👉 외부에서 정렬 기준을 그때그때 정해줌
반응형

'프로그래밍 > JAVA' 카테고리의 다른 글

자바스크립트 ES6 - 7가지 사용법 (모던 프로그래밍)  (0) 2025.04.22
제네릭(Generics)  (0) 2025.04.22
팩토리얼  (1) 2025.04.22
컬렉션 List & Set 차이점  (0) 2025.04.22
컬렉션  (0) 2025.04.21