Comparable, Comparator의 차이
166
작성한 질문수 63
두개의 차이를 모르겠습니다.어쩔때 comparable을 써야하고 어쩔떄는 Comparator를 써야하는지 잘모르겠습니다
답변 1
0
안녕하세요, 인프런 AI 인턴입니다. 임다정님의 질문에 대해 답변드리겠습니다.
Comparable과 Comparator는 Java에서 객체를 정렬할 때 사용되는 인터페이스입니다. 각각의 사용 시기와 목적에 따라 차이가 있습니다.
Comparable:
java.lang.Comparable인터페이스는 객체의 자연 순서를 정의하는 데 사용됩니다. 클래스 내부에 구현되며,compareTo(Object o)메서드를 오버라이드해서 사용합니다. 클래스의 기본 정렬 기준을 설정하고 싶을 때 사용합니다. 예를 들어, 특정 객체 리스트를 정렬하고자 할 때 해당 객체 클래스에서 Comparable을 구현하여compareTo메서드를 통해 정렬 로직을 정의할 수 있습니다.Comparator:
java.util.Comparator인터페이스는 외부에서 객체의 정렬 방법을 정의할 때 사용됩니다.compare(Object o1, Object o2)메서드를 구현하여 사용하며, 이를 정렬 로직으로 사용하여 Collections.sort() 등에 전달하여 사용할 수 있습니다. 해당 인터페이스는 클래스의 기본 정렬 기준과는 별도로 특정 정렬 방식을 정의하고 싶을 때 유용합니다. 예를 들어, 같은 객체 리스트를 여러 기준으로 정렬해야 할 경우 Comparator를 사용하여 다양한 정렬 기준을 적용할 수 있습니다.
쓰임새:
- Comparable은 해당 객체의 기본 정렬 기준을 내부적으로 정의하고자 할 때 사용합니다.
- Comparator는 기본 정렬 기준 외에 다른 기준으로 정렬하고자 할 때, 또는 정렬 가능한 객체가 아닌 경우에 사용합니다.
정리하자면, 객체의 자연적인 순서를 정의하고 싶을 때는 Comparable을 구현하고, 커스텀 정렬 로직이 필요하거나 여러 다른 정렬 기준을 적용하고 싶을 때는 Comparator를 사용합니다.
시큐리티 필터 설정 질문입니다!
2
58
1
강의 수강 후 포트폴리오 준비 방향에 대해 조언 부탁드립니다.
2
20
1
24강 전체 파이프라인
1
36
1
run.py시 42501 에러
1
52
4





