Skip to content

Java java.util.Comparator #
Find similar titles

Structured data

Category
Programming

Comparator 인터페이스 #

Comparator인터페이스는 Java의 java.util 패키지에 속하는 인터페이스로 객체를 담고있는 컬렉션의 전체 객체 순서를 재정렬하기 위한 비교함수이다. Comparator를 정렬 메서드 (Collections.sort 또는 Arrays.sort 등)에 건네 주어, 정렬 순서를 정확하게 제어하고, 비교자를 사용하여 특정 데이터 구조 (정렬 된 Set 클래스 또는 Map 클래스)의 순서를 제어하거나 자연 순서가 없는 객체의 컬렉션을 정렬 할 수 있다.

정렬 대상이 되는 객체에 대한 비교함수의 결과는 항상 동일해야 하며 경우에 따라 비교결과가 다르게 나오는 경우는 범위 규약위반으로 예외(Exception)을 발생시킬 수 있다.

메소드 설명 #

메소드 설명
int compare(Object o1, Object o2) 지정된 두 매개변수를 비교해 첫 번째 인수가 두 번째 인수보다 작으면 음수를 반환하고, 큰 경우는 양수, 동일한 경우는 0을 반환한다.
boolean equals(Object obj) 지정된 매개변수가 해당 Comparator와 동일한 객체인지를 확인해 동일한 경우 true를 반환한다. 동일한 객체의 기준은 두 개의 서로 다른 비교 인수에 대해 각각의 Comparator 객체에서 동일한 결과를 반환하는 경우 동일하다고 판단한다.

Comparator 익명 클래스 활용 예제 #

# list : Integer 객체를 담고 있는 컬랙션 객체 
# Integer 클래스는 Comparable 인터페이스를 상속받음
# 익명 클랙스로 비교함수 추가
Collections.sort(list,new Comparator<Integer>(){
    public int compare(Integer o1, Integer o2){
        return (o1 > o2) ? -1 : (o1 == o2 ? 0 : 1);
    }
});
0.0.1_20140628_0