728x90
반응형
Arrays.sort()를 호출만 하면 컴퓨터가 알아서 배열을 정렬하는 것처럼 보이지만, 사실은 Comparable의 구현에 의해서 정렬되었던 것이다.
선언형태와 이름이 다를 뿐 두 객체를 비교한다는 같은 기능을 목적으로 고안된 것이다.
인터페이스 |
특징 |
|
Comparable |
기본 정렬기준을 구현하는데 사용 |
|
Comparator |
기본 정렬기준 외에 다른 기준으로 정렬하고자할 때 사용 |
순서를 고려해야 하는 값 클래스를 작성한다면 꼭 Comparable 인터페이스를 구현해야한다.
또한 compareTo 메서드에서 필드의 값을 비교할 때 < , > 연산자는 쓰지 말아야한다.
그 대신 박싱된 기본 타입 클래스가 제공하는 정적 compare 메서드나 Comparator 인터페이스가 제공하는 비교자 생성 메서드를 사용하자.
728x90
반응형
'Java' 카테고리의 다른 글
[Effective Java] 아이템 2. 생성자에 매개변수가 많다면 빌더를 고려하라. (0) | 2022.05.24 |
---|---|
[Effective Java] 아이템 1. 생성자 대신 정적 팩터리 메서드를 고려하라. (0) | 2022.05.24 |
[Java] 컬렉션 프레임워크 (0) | 2021.01.23 |
[Java] 예외처리 (0) | 2021.01.17 |
[Java] OOP 5대 원칙 (0) | 2021.01.10 |