[java] Comparator 인터페이스를 이용한 정렬하기
자바에서 객체를 정렬할 때 Comparator 인터페이스를 사용하여 정렬기준을 지정할 수 있습니다.
Comparator 인터페이스란?
Comparator
인터페이스는 두 개의 객체를 비교하는데 사용됩니다. Comparator
는 compare
메소드를 구현함으로써 객체를 기준에 따라 비교할 수 있도록 해줍니다.
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