실제로 비교를 수행하려면 이 클래스의 인스턴스를 만들어야 한다.
Comparator<String> comp = new LengthComparator();
if (comp.compare(words[i], words[j]) > 0) ...
이 호출을 words[i].compareTo(words[j])와 대조해 보자. compare 메서드는 문자열 자체가 아니라 비교자 객체로 호출한다.
Note ≣
LengthComparator 객체에는 상태가 없지만 여전히 인스턴스를 만들어야 한다. compare 메서드는 정적 메서드가 아니므로 호출하려면 인스턴스가 필요하다.
배열을 정렬하려면 LengthComparator 객체를 Arrays.sort 메서드에 전달해야 한다.
String[ ] friends = { "Peter", "Paul", "Mary" };
Arrays.sort(friends, new LengthComparator());
이제 friends 배열은 ["Paul", "Mary", "Peter"] 또는 ["Mary", "Paul", "Peter"]가 된다.
람다 표현식으로 Comparator를 훨씬 쉽게 사용하는 방법도 있다. 이 방법은 3.4.2 함수형 인터페이스에서 알아본다.