Comparable 대 Comparator: Comparable과 Comparator의 차이점
게시 됨: 2020-12-30목차
비교 대상 및 비교 대상: 개요
Comparable과 Comparator는 클래스가 구현될 동작을 결정하기 위한 Java 프로그래밍 언어의 인터페이스입니다. Comparable은 자연스럽게 정렬된 객체에 사용되지만 Comparator 인터페이스는 객체의 속성을 고려하여 정렬을 구현합니다. 또한 Comparator 정렬은 두 개의 다른 클래스의 개체를 고려하고 Comparable은 "this" 참조를 사용하여 개체를 비교합니다.
이제 두 인터페이스가 작동하는 기본 원칙을 설정했으므로 두 인터페이스의 차이점을 살펴보겠습니다.
비교 대상과 비교 대상의 차이점 - 2020 - 다른 사람
정렬 방법
유사한
정렬을 위해 compareTo() 함수를 사용합니다. 이것은 Comparable 정렬 인터페이스에 있는 유일한 방법입니다.
compareTo(Object O)는 객체를 인수로 사용하여 동일한 유형의 다른 객체와 비교합니다. 개체가 문자열인 경우 동일한 유형의 다른 개체와만 비교할 수 있습니다. int 개체 등의 경우도 마찬가지입니다. compareTo()는 정렬 결과에 따라 음수, 양수 또는 0의 정수 값을 반환합니다.
비교기
Comparator에서 요소를 정렬하는 두 가지 방법이 있습니다: compare() 및 equals().
compare(Object O1, Object O2)는 두 개의 인수를 입력으로 고려하여 원하는 출력을 제공합니다. 첫 번째 인수가 두 번째 인수와 비교되는 방식을 나타내는 정수를 반환합니다.

- O1이 O2보다 작으면 음의 정수를 반환합니다.
- O1이 O2보다 크면 양의 정수를 반환합니다.
- O1이 O2와 같으면 0을 반환합니다.
equals(Object)는 객체를 입력으로 고려하여 비교기와 비교합니다. Object가 Comparator와 같으면 True를 반환합니다. 또한 순서가 변경되지 않도록 합니다.
사용된 패키지
유사한
Java의 java.lang 패키지에 존재합니다.
비교기
Java의 java.util 패키지에 존재합니다.

주문 및 클래스
유사한
- 자연 순서를 따르는 개체, 즉 스스로 정렬하는 경향이 있는 개체를 고려합니다. 예를 들어, 이름, 가격, 급여, 롤 번호, 나이 등의 경우 알파벳 순서 또는 숫자 순서.
- 두 개체가 같은 클래스에 속하는 것도 중요합니다.
- Comparable 인터페이스는 "this" 참조를 지정된 객체와 비교합니다.
- Comparable을 사용한 정렬은 실제 클래스에 영향을 줍니다.
비교기
- 이 인터페이스는 주로 지정된 개체의 속성을 정렬하는 데 사용됩니다. 그들은 자연적인 질서를 가질 필요가 없습니다. 그것은 사용자 정의 할 수 있습니다.
- 고려하는 두 클래스의 객체 속성을 비교하기 위해서는 정렬 논리가 별도의 클래스에 있어야 합니다.
- 실제 클래스는 영향을 받지 않습니다.
시퀀스 및 컬렉션
유사한
- 단일 정렬 순서만 지원합니다. 이는 롤 번호, 연령 또는 순위와 같은 컬렉션의 한 요소 또는 속성만 고려할 수 있음을 의미합니다.
- 개체, 배열 또는 목록의 컬렉션을 정렬하려면 Collection을 사용할 수 있습니다. 정렬(목록) 또는 배열. 정렬(목록). 이렇게 하면 개체가 자연스럽게 정렬 됩니다.
비교기
- 여러 정렬 순서를 지원합니다. 이는 롤 번호, 연령 및 순위와 같은 컬렉션의 여러 요소 또는 속성을 고려할 수 있음을 의미합니다.
- collection.sort(list, comparator)를 사용하여 컬렉션을 정렬할 수 있습니다.
다음은 Comparable과 Comparator의 모든 차이점에 대한 요약입니다.

유사한 | 비교기 |
패키지 | |
자바.lang | 자바.유틸 |
정렬 방법 | |
비교 대상() | 비교하다() |
주문 | |
자연스러운 주문 | 맞춤 주문 |
개체 유형 | |
비교 대상 개체는 동일한 유형이어야 합니다. | 다른 클래스의 개체가 고려됩니다. |
클래스에 영향 | |
클래스가 수정됩니다. | 수업에 영향을 미치지 않음 |
정렬 순서 | |
단일 정렬 순서 | 다중 정렬 순서 |
세계 최고의 대학 에서 소프트웨어 개발 과정 에 등록하십시오 . 이그 제 큐 티브 PG 프로그램, 고급 인증 프로그램 또는 석사 프로그램을 획득하여 경력을 빠르게 추적하십시오.
Java에서 Comparable 및 Comparator를 사용할 때 염두에 두어야 할 사항
- 비교 가능한 인터페이스는 특정 클래스에 대한 표준 비교를 수행하기 위해 판매하는 경우 선택할 수 있는 인터페이스입니다.
- Comparator를 사용하면 람다를 사용할 수 있습니다.
- compareTo() 메서드를 사용하여 Comparator와 Comparable을 모두 구현할 수 있습니다.
- 정렬의 유연성을 원하는 경우 비교기 인터페이스를 권장합니다.
결론
대부분의 실제 시나리오에서 정렬할 때 일반적으로 다양한 매개변수를 염두에 둡니다. 또한 기본 정렬에서 비교 가능한 결과를 사용하고 동적으로 변경할 수 없기 때문에 요구 사항에 맞게 다양한 정렬 방법을 사용자 정의하고 선택할 수 있는 Comparator보다 실용적이지 않습니다. 이러한 이유만으로도 Comparator는 Comparable보다 더 실용적인 응용 프로그램을 찾습니다.
읽기: 확인해야 할 몇 가지 흥미로운 자바 프로젝트
Java, 전체 스택 개발에 대해 자세히 알아보려면 작업 전문가를 위해 설계되었으며 500시간 이상의 엄격한 교육, 9개 이상의 프로젝트, 및 과제, IIIT-B 동문 자격, 실질적인 실습 캡스톤 프로젝트 및 최고의 기업과의 취업 지원.
프로그래밍 언어의 인터페이스는 무엇입니까?
자바 배우기가 쉽나요?
Java는 객체 지향 프로그래밍 패러다임을 도입하여 가장 경험이 없는 Java 개발자도 경험이 풍부한 개발자처럼 생각하고 프로그램을 만들 수 있습니다. Java는 오늘날에도 광범위하게 사용되는 C 및 C++ 프로그래밍 언어에서 시작되었습니다. Java는 기능면에서 C 및 C++와 몇 가지 유사하지만 훨씬 더 사용자 친화적인 언어로 성장했습니다. 객체 지향 프로그래밍을 사용하면 기존 코드를 간단하게 유지하고 변경할 수 있으므로 초보 코더라도 기업 프로젝트 작업을 시작할 수 있습니다. Java는 실행 전에 오류가 있는지 확인하기 때문에 신규 개발자는 예상치 못한 런타임 오류가 발생할 가능성이 적습니다. Java는 프로그래머가 모든 코드 요소를 올바르게 지정하도록 하여 애플리케이션이 커짐에 따라 실수할 가능성을 줄입니다.
Java에서 정렬이 필요한 이유는 무엇입니까?
정렬은 배열에서 요소의 위치를 모두 오름차순 또는 내림차순으로 정렬하는 일련의 기술을 말합니다. 적절한 정렬 알고리즘은 동일한 값을 가진 요소가 정렬된 배열에 동일한 순서로 유지되도록 해야 합니다. 데이터 구조와 알고리즘을 심층적으로 이해하려면 정렬이 필요합니다. 프로그래밍 언어로서의 Java는 매우 다재다능하며 여러 정렬 알고리즘을 구현하는 데 사용할 수 있습니다. 이러한 알고리즘의 대부분은 매우 다재다능하며 재귀적 및 반복적 방식으로 구현될 수 있습니다.