Collections 초급

Comparator 팩토리와 유창한 정렬

Comparator 팩토리 메서드로 읽기 쉽고 조합 가능한 정렬 규칙을 구성합니다.

✕ Anonymous comparator
people.sort(new Comparator<Person>() {
    @Override
    public int compare(Person a, Person b) {
        int byName = a.name().compareTo(b.name());
        return byName != 0 ? byName : Integer.compare(a.age(), b.age());
    }
});
✓ Java 8+
people.sort(Comparator.comparing(Person::name)
        .thenComparingInt(Person::age));
이 코드에 문제가 있나요? 알려주세요.
🧩

조합 가능

정렬 규칙을 자연스럽게 연결할 수 있습니다.

👁

더 쉬운 검토

정렬 키와 우선순위가 명확하게 드러납니다.

🐛

더 안전한 비교

특화된 헬퍼를 사용해 오류가 발생하기 쉬운 산술 비교를 피합니다.

이전 방식
익명 Comparator
모던 방식
Comparator 팩토리
JDK 버전
8
난이도
초급
Comparator 팩토리와 유창한 정렬
사용 가능

JDK 8 (2014년 3월) 이후 사용 가능

Comparator 팩토리는 정렬 방식을 선언적으로 표현하고, 직접 분기문을 작성하지 않고도 기본 키와 보조 키를 조합합니다.