[java] Comparator 인터페이스를 이용한 정렬하기

자바에서 객체를 정렬할 때 Comparator 인터페이스를 사용하여 정렬기준을 지정할 수 있습니다.

Comparator 인터페이스란?

Comparator 인터페이스는 두 개의 객체를 비교하는데 사용됩니다. Comparatorcompare 메소드를 구현함으로써 객체를 기준에 따라 비교할 수 있도록 해줍니다.

public interface Comparator<T> {
    int compare(T o1, T o2);
}

사용 방법

Comparator를 이용하여 객체를 정렬하려면 compare 메소드를 구현하는 클래스를 작성해야 합니다. 다음은 Person 객체를 이름(name)을 기준으로 정렬하는 예시입니다.

import java.util.Comparator;

public class PersonNameComparator implements Comparator<Person> {
    @Override
    public int compare(Person p1, Person p2) {
        return p1.getName().compareTo(p2.getName());
    }
}

위의 PersonNameComparator 클래스는 Comparator 인터페이스를 구현하여 compare 메소드에서 두 Person 객체의 이름을 비교합니다.

정렬시에는 Collections.sort 메소드를 사용하여 Comparator 객체를 전달해 정렬 기준을 지정할 수 있습니다.

List<Person> people = new ArrayList<>();
// people 리스트에 요소 추가

PersonNameComparator nameComparator = new PersonNameComparator();
Collections.sort(people, nameComparator);

결론

Comparator 인터페이스를 사용하여 각기 다른 기준에 따라 객체를 정렬할 수 있습니다. 이는 유연하고 다양한 정렬 기준이 필요한 상황에서 유용하게 활용될 수 있습니다.

참고 문헌: Oracle Java Documentation - Comparator