신한DS 금융SW 아카데미/Java

자바) Comparator.reverseOrder(), Collections.reverseOrder()

hpehpeyy 2025. 4. 15. 12:23

Comparator.reverseOrder()

  • Comparator.reverseOrder()는 Comparator 인터페이스를 구현하는 객체에 대한 내림차순 정렬을 위한 메서드입니다.
  • 이 메서드는 Comparator 객체를 반환합니다. 반환된 Comparator는 주어진 자료형에 대해 내림차순으로 정렬하는 기준을 제공합니다.
  • 주로 Arrays.sort()나 Collections.sort()와 같은 정렬 메서드에서 Comparator를 사용해 정렬 기준을 지정할 때 사용됩니다.

예시

// 내림차순 정렬 System.out.println(Arrays.toString(arr)); // [9, 5, 4, 3, 1, 1]
Integer[] arr = {3, 1, 4, 1, 5, 9}; Arrays.sort(arr, Comparator.reverseOrder());

Collections.reverseOrder()

  • Collections.reverseOrder()는 Comparator 객체를 반환하는 유틸리티 메서드로, 주로 Collections 클래스와 관련된 작업에서 사용됩니다.
  • 이 메서드는 Comparable 인터페이스를 구현하는 자료형에 대해 내림차순으로 정렬할 수 있도록 Comparator를 반환합니다.
  • Comparator.reverseOrder()와 기능적으로는 동일하지만, Collections.reverseOrder()는 Collections 클래스에서 직접 사용할 때 주로 쓰입니다.

예시

List<Integer> list = new ArrayList<>(Arrays.asList(3, 1, 4, 1, 5, 9));
Collections.sort(list, Collections.reverseOrder()); // 내림차순 정렬
System.out.println(list); // [9, 5, 4, 3, 1, 1]

차이점

  • Comparator.reverseOrder(): Comparator 객체를 반환하여, 다양한 자료형에 대해 내림차순 정렬을 적용할 수 있도록 합니다. 주로 Arrays.sort() 또는 Collections.sort()와 함께 사용됩니다.
  • Collections.reverseOrder(): Collections 클래스에서 제공하는 메서드로, 주로 List를 정렬할 때 사용됩니다. 반환된 Comparator는 Comparable을 구현한 자료형에 대해 내림차순 정렬을 제공합니다.
주요 용도 배열이나 컬렉션에 대해 내림차순 정렬을 수행 List에 대해서 내림차순 정렬을 수행
사용 대상 Arrays.sort(), Collections.sort()에서 모두 사용 가능 주로 List 컬렉션에 사용
반환 객체 Comparator 객체 반환 Comparator 객체 반환
적용 대상 자료형 Comparable을 구현한 모든 객체 Comparable을 구현한 객체에만 적용 (예: Integer, String)
예시 코드 Arrays.sort(arr, Comparator.reverseOrder()); Collections.sort(list, Collections.reverseOrder());

 

두 메서드는 내림차순 정렬을 위한 Comparator 객체를 반환하지만, 사용되는 상황에 따라 Collections.reverseOrder()는 주로 List 관련 작업에서 사용되고, Comparator.reverseOrder()는 보다 일반적인 Comparator를 사용할 때 쓰입니다.